我是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) –