Страницы: 1
RSS
Эффективно проверить хотя бы на одно условие
 
Всем привет. Форумчане, подскажите как в VBA эффективно проверять массивы по условию "если хотя бы одно значение соответствует значению проверки"...скажем вывести сообщение, или задать значения переменной. Например, в приложенном файле - столбец E  - если хотя бы одна ячейка имеет числовой формат, а не формат даты - вывести предупреджающее сообщение, с ее адресом. Нужен перебор циклом, если есть более быстрые варианты?
Бывает очень много похожих типичных задач - например если хотя бы одно значение пустое, если хотя бы одно значение в массиве не равно остальным и т.д. Есть универсальный эффективный каркас на эти случаи?
 
Цитата
Laider написал: Есть универсальный эффективный каркас на эти случаи?
Нет, т.к. эти 'случаи' относятся к разным направлениям. Например работу со ЗНАЧЕНИЯМИ (проверка на пусто, на совпадение...) лучше выполнять в памяти, предварительно забрав диапазон ячеек в массив (в некоторых случаях можно этот массив переложить в словарь или коллекцию), а вот для работы с форматом/структурой ячейки - это только перебором в цикле самих ячеек (в общем случае)  
Согласие есть продукт при полном непротивлении сторон
 
Sanja, я так и понял, спасибо. Буду делать шаблоны на разные направления. На форматы еще мысль есть на формулы или UDF, что-то вроде =ЕДАТА(), так может быть быстрее циклов.
Изменено: Laider - 06.04.2018 21:24:55
 
Извините, я кратко с телефона. М.б. имеет смысл присмотреться к методу range.find, а также ограничивать область проверки путём использования specialcells с соотв. параметрами?
Кому решение нужно - тот пример и рисует.
 
Макрос
Страницы: 1
Наверх