2017-08-18 8 views
0

私は6列の大きな表を持っています。 私が作成したテーブルの列を持っている:Excel VBA配列、別の列が同じ値である列を追加します

myArray = Worksheets("Sheet1").ListObjects("Table1").DataBodyRange.value 
列2の値は、私は、これはSQLで非常に容易になるだろう知っている7.

ここで私は今、6列の値を追加する必要が

残念ながら(またはアクセス)それにアクセスする必要はありません。

私は2列目にいくつかの異なる値を持っており、それぞれ異なる値のグループごとにこれを行う必要があります。

+0

実際にデータベースのようにテーブルをクエリできます。[この回答](https://stackoverflow.com/questions/19755396/performing-sql-queries-on-an-excel-table-within-a-workbook -with-vba-macro) – jcarroll

答えて

0

使用この:あなたは反復処理している行の数に

Function MyFunc() As Integer 
    MyFunc = 0 
    For i = 1 To 999 
     If Cells(i, 2).Value = 7 Then 
      MyFunc = MyFunc + Cells(i, 7).Value 
     End If 
    Next 
End Function 

変更999を、そしてこのような合計値を取得:

Dim Sum As Integer 
Sum = MyFunc 
0

SUMIF機能はこれであなたを助けるでしょう、

セルG1には、column Fの合計があり、に対応する7があります。、

=SUMIF(B:B,7,F:F) 

enter image description here

あなただけのVBAでこれをしたい場合は、ここではVBAで同じ機能をしたい場合は、動的にその7を変更することができ、

Sub sumCols() 
Range("G1") = Application.WorksheetFunction.SumIf(Range("B:B"), 7, Range("F:F")) 
End Sub 

です。

関連する問題