Я хочу создать счетчик в рутине, которая будет подсчитывать, сколько раз определенная запись появилась до сих пор.Группа VBA с использованием общедоступных типов
Подпрограмма, которую я создал до сих пор, заполняет данные в электронной таблице через For..Next Loop. Для каждой из этих строк у меня есть дополнительный столбец, который будет представлять счетчик и подсчитывает, сколько раз в предыдущих строках появилась характеристика строки ввода. Для этого я использую функцию application.worksheetfunction.CountIf, но ссылочный диапазон должен быть динамическим.
Например, у меня есть следующая таблица Example Table
общая идея состоит в том, чтобы сгруппировать по месяцам и расходов типа и имеет величину суммы. Роль счетчика состоит в том, чтобы идентифицировать эти строки, которые могут быть сгруппированы вместе и пронумеровать их значения и суммировать их. Таблица имеет приблизительно 10 000 строк и 53 столбца. Для этого процесса, я создал следующий общественный тип:
>public type OP
>>Month as string
>>expense_type as string
>>amount as double
>end type
Sub NewOuput()
with sheet1
>for i=1 lastrow 'output is the existing table that i get the data and i want to manipulate and then populate them into another table of the same format
>>op.month=output(i,1)
>>op.expense_type=output(i,2)
>>op.amount=output(i,3)
'----------------------------
>> .cells(i,1)=op.month 'this is the population of hte data in the new table
>> .cells(i,2)=op.expense_type
>> .cells(i,3)=op.amount
next i
end with
end sub
Через функции, я пытаюсь определить те строки, которые нужно суммировать-вверх, а затем вызвать соответствующие функции в выходной части петли.
Функция countif excel не может быть привязана к массивам, поэтому теперь это исключено из вопроса. Я прочитал много сообщений по различным способам группировки, включая соединения данных, коллекции и другие индивидуальные подходы. Коллекции оказались лучшими, но я пропустил некоторые из них. Имеет ли это смысл? Любые предложения приветствуются
добавить еще пример исходных данных и результатов их обработки – user3598756
@ user3598756 Спасибо за ваш ответ. Я загрузил основной код и пример того, что я хочу обработать. Имеет ли это смысл? – Evangelia