尝试在VBA中复制SUMIF()函数时发生错误9

时间:2018-09-27 03:34:53

标签: excel vba range sumifs ms-error-9

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

注意:

  1. 我将i + 1用作索引,因为我想开始将这些值写入标头下方。

  2. “数据输出”是我必须使用“数据输入”中的数据填充的工作表

但是我一直收到错误“ 9”(下标超出范围)。我看不到错误在哪里,我真的很想知道是否有更好的方法对此进行编码。

0 个答案:

没有答案