Проверка ячеек в VBA Excel

Я создаю электронную таблицу, которая будет загружена в базу данных и требует строгой проверки.

Мне нужно убедиться, что если в ячейке A2 есть текст, то в ячейках C2, D2, F2, G2 должны быть данные. Я хотел бы сделать это с помощью цвета - если в A2 есть текст, тогда другие ячейки будут выделены красным, пока они не будут содержать текст, а затем цвет фона снова станет белым. (Перечисленные ячейки ОБЯЗАТЕЛЬНЫ и должны содержать значение).

В этой таблице будет около 1000+ строк, и я попытался это сделать, используя проверку данных, но это потребовало бы от меня движения строки за строкой.


person user3083718    schedule 09.12.2013    source источник
comment
Вы можете скопировать первую строку с проверкой .pasteSpecial (xlPasteValidation). Вам нужно больше подробностей о том, как это сделать?   -  person Makah    schedule 09.12.2013


Ответы (1)


Проверка данных не требует от вас выполнения построчно, по умолчанию Excel, кажется, делает это так (путем фиксации строки и столбца знаками доллара), но это можно легко изменить.

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

формула в вашем случае для C2 будет: =AND(LEN($A2)>0;LEN(C2)=0) это может быть применено для C2: F2000:

Применено к C2: F2000

Или вы можете указать эту формулу для C1 (=AND(LEN($A1)>0;LEN(C1)=0)) и применить ее к C: F.

Формула условия при применении к полным столбцам Применяется к C: F

Нет необходимости в VBA.

person K_B    schedule 09.12.2013
comment
спасибо - могу ли я поставить это поле условного форматирования - как мне скопировать? - person user3083718; 10.12.2013
comment
В окне управления условным форматированием вы можете увидеть диапазон, в котором это применяется к (Applies to), просто измените его на нужный диапазон. Формула, используемая в качестве условия, должна применяться к самой левой верхней ячейке указанного вами диапазона. - person K_B; 10.12.2013
comment
Еще раз спасибо - несмотря на то, что у вас есть проблема с «введенной вами формулой, содержит ошибку» - есть идеи относительно того, почему? - person user3083718; 10.12.2013
comment
Я заменил его на запятую, и код не работает .. он изменил его на: = = AND (LEN ($ A2) ›0, LEN (C2) = 0) - person user3083718; 10.12.2013