私はVBAを初めて使うので、助けを求める必要があります。 以下、アクティブシートの最初の列の値に基づいて、別のシート[AB]のデータを合計するVBAコードを取得しました。行と列の数は可変であるため、セルのアドレスは絶対的である必要があります。可変範囲のVBA sumif
Sub sumif_test
Range("A1").Select
Selection.End(xlDown).Select
abc = ActiveCell.Row
Selection.End(xlUp).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(1, 1).Select
Dim mycrit As Variant
Dim myval As Variant
Dim CritRng As Range
Dim SumRng As Range
Set CritRng = Worksheets("AB").Range("A:A")
Set SumRng = Worksheets("AB").Range("N:N")
c = ActiveCell.Column
r = ActiveCell.Row
For r = 2 To abc - 2
mycrit = Cells(r, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
myval = Cells(r, c).Address(RowAbsolute:=False, ColumnAbsolute:=False)
myval = Application.WorksheetFunction.SumIf(CritRng, mycrit, SumRng)
Next r
End sub
このコードでは何の結果も得られません。
セル(r、1).valueを使用している場合は、範囲アドレスをmyCritとして使用していますか? –
残念ながら、それは助けにはなりません。あなたが動作する可能性のある他のセルのアドレス形式について考えることはできますか? – Borro
範囲(myCrit)またはセル(r、1)を試してみました –