我是VBA的新手,所以我必須要求你的幫助。 下面,我得到了VBA代碼,它應該基於來自活動工作表第一列的值,從不同工作表[AB]中彙總數據。行數和列數是可變的,所以單元格地址必須是絕對的。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
使用此代碼我沒有得到任何結果。
您正在使用範圍地址作爲myCrit,你應該使用單元格(r,1).value嗎? –
不幸的是,它並沒有幫助。你能想到可以工作的其他單元格地址格式嗎? – Borro
你有沒有嘗試過,範圍(myCrit)或只是細胞(r,1) –