Я новичок в 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
Примечания:
Я использую i + 1 в качестве индекса, потому что я хочу начать записывать значения ниже заголовков.
«Вывод данных» - это лист, который я должен заполнить данными из «Ввод данных»
Но я продолжаю получать ошибку «9»(индекс вне диапазона).Я не могу понять, где ошибка, и я действительно хотел бы знать, есть ли лучший способ кодировать это.