我是VBA的新手,我必须自动化工作表。其中一列需要使用此SUMIF()函数的等效项:
=SUMIF($A$2:$A$193335, A2,$C$2:$C$193335)
现在,假设我已经获得了行数(r = 193335),知道我不想显式放置193335
而是r
时,如何使用VBA复制此公式(因为此代码是使流程自动化,而其他数据表可能具有不同的行数)。
我尝试通过一个函数进行以下操作:
Function Total_Count(rows)
Dim i As Long
b = rows - 1
For i = 1 To b
Sheets("Data Output").Range("B" & i + 1 & "").Value _
= Application.WorksheetFunction.SumIf(Worksheets _
("Data Input").Range("A2:A" & rows & ""), _
Worksheets("Data Input").Range("A" & i + 1 & ""), _
Worksheets("Data Input").Range("C2:C" & rows & ""))
Next i
End Function
注意:
我将i + 1用作索引,因为我想开始将这些值写入标头下方。
“数据输出”是我必须使用“数据输入”中的数据填充的工作表
但是我一直收到错误“ 9”(下标超出范围)。我看不到错误在哪里,我真的很想知道是否有更好的方法对此进行编码。