Использование макроса VBA для вставки функций VS только с использованием макроса

Короче говоря, я бы либо:

Создайте макрос, который запускается каждый раз, когда изменяется ячейка в определенном диапазоне, а затем выводит результат на основе этих ячеек.
-ИЛИ-
Создайте макрос для автоматической вставки функций, которые будут делать то же самое.

Следует учитывать, что это должно работать с несколькими таблицами разной длины без необходимости что-либо менять вручную, и что результаты отдельных листов также необходимо будет отображать в сводке на другой странице.

Что было бы более желательным / более эффективным / более простым в реализации?

Субъектные данные влекут за собой процедуры тестирования. Листы содержат критерии тестирования и столбец с результатами PASS/FAIL. Мне нужно свести их в таблицу. Начало таблицы и конец таблицы находятся в разных строках и могут быть изменены.


person Bacu    schedule 10.01.2011    source источник
comment
не могли бы вы предоставить некоторые примеры данных, чтобы читатели могли лучше понять вашу проблему и, следовательно, разработать лучшее решение?   -  person Alex P    schedule 10.01.2011
comment
Рассматривали ли вы использование формул массива? Учитывайте также конечного пользователя. Если он собирается использовать формулу или добавить ее в новую позицию, лучше всего подойдет функция. Если нет, макрос дает вам больше возможностей и контроля. Но опять же, это зависит от того, что именно вам нужно. Как сказал Остаток; приведите несколько примеров, чтобы дать более подходящее мнение.   -  person CaBieberach    schedule 11.01.2011
comment
@CaBieberach - Если бы я делал это с помощью формул, я бы, скорее всего, использовал countif(). Проблема, которая заставляет меня рассматривать макросы, заключается в следующем: я мог бы импортировать макрос в книгу, тогда как уравнения нужно было бы добавлять на каждый лист вручную.   -  person Bacu    schedule 11.01.2011


Ответы (1)


Не видя вашей реальной проблемы, я бы определенно выбрал первый вариант. Я думаю, что много формул, динамически вставляемых в ячейки, было бы проблемой.

Используйте событие Worksheet_Change и проверьте, относится ли измененная ячейка к вашему целевому диапазону, а затем выполните необходимое действие.

person El Ronnoco    schedule 10.01.2011
comment
Мне нужно, чтобы результаты были записаны в нижней части таблицы, длина которой может меняться. Это единственная причина, по которой я рассматриваю функции, потому что они остаются в своей правильной ячейке после того, как вы вставите строки над ними. Сколько усилий потребуется, чтобы убедиться, что результаты вставлены в ту же позицию относительно конца таблицы? - person Bacu; 10.01.2011
comment
Как формируется таблица? И как происходит вставка строки/столбца в таблицу? Если у вас есть контроль над обеими этими вещами, просто настройте переменную, чтобы отслеживать размер таблицы. Если это невозможно, вам нужно будет определить конец таблицы, используя что-то вроде .end(xlDown) и т. д. См. ozgrid.com/VBA/ExcelRanges.htm - person El Ronnoco; 13.01.2011