Ошибка 9 при попытке реплицировать функцию SUMIF () в VBA - PullRequest
0 голосов
/ 27 сентября 2018

Я новичок в VBA и должен автоматизировать лист.Один из столбцов должен использовать эквивалент этой функции SUMIF ():

=SUMIF($A$2:$A$193335, A2,$C$2:$C$193335)

Теперь предположим, что я получил количество строк (r = 193335), как я могу повторить эту формулу, используя VBAзная, что я не хочу явно ставить 193335, но r (потому что этот код предназначен для автоматизации процесса, а другие таблицы данных могут иметь различное количество строк).

Моя попытка заключалась в следующем,через функцию:

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»(индекс вне диапазона).Я не могу понять, где ошибка, и я действительно хотел бы знать, есть ли лучший способ кодировать это.

...