Страницы: 1
RSS
Код VBA. УФ. Кавычки и syntax error
 
Уважаемые форумчане!
Просьба помочь чайнику по следующей проблеме:
Вводная - имеется некая таблица, которую редактируют/обновляют статусы в половине столбцов. Другая половина статична.
Некоторые редактируемы столбцы имеют выпадающий список с четко допустимыми значениями (например, 1 и 2)
Некоторые особо одаренные пользователи ломают систему и вписывают в такие столбцы фигню. Задача написать макрос проверки так, чтобы по нажатию кнопки включалось УФ, и красным подсвечивало неверные значения.
Код
Sub Check()
'
Columns("T:T").Select       'проверка на несоответствующее значение в Т (не 1, и не 2), при условии что в столбце А не пусто
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=И(НЕ($A1="""");$T1<>""1"";$T1<>""2"")"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
        Selection.FormatConditions(1).StopIfTrue = False
End Sub

По итогу в УФ прописывается следующая формула: =И(НЕ($A1="");$T1<>"1";$T1<>"2")

УФ не срабатывает, т.к. считает, что цифирь в кавычках в формуле не те единицы и двойки, которые указаны в столбце, и красит в красный всё...

Но формула работает корректно, если из формулы в УФ убрать кавычки (=И(НЕ($A1="");$T1<>1;$T1<>2). Тперь вопрос: как прописать в VBA без двойных кавычек единицу и двойку? Если писать в "одинарных" кавычках, то ругается на синтакс еррор... Сорри, то ли я туплю, то ли что...

 
Название темы должно содержать проблему, а не отрывистые фразы.
Предлагайте. Модераторы заменят.

У чайников файлы-примеры не приживаются?
 
Добрый день. Все, что в кавычках - это для программы СТРОКА. Убрать кавычки - очень просто - не пишите их вокруг чисел в формуле вообще. Никаких.

З.Ы. предлагаю название темы - синтаксис формулы условного форматирования в коде VBA.
Изменено: Пытливый - 05.12.2019 13:14:33
Кому решение нужно - тот пример и рисует.
 
Код
Formula1:="=И(НЕ($A1="""");$T1<>1;$T1<>2)"
Вариант названия темы: Убрать кавычки в формуле условного форматирования. VBA.
 
Тут уж и я растерялся :)
Кавычки-то причем? они там вообще не нужны! Кто в трезвом состоянии сравнивает число 2 с текстом "2"?!
 
Цитата
Пытливый написал:
синтаксис формулы условного форматирования в коде VBA
Да, ваш вариант явно лучше отражает суть проблемы)
Цитата
vikttur написал:
У чайников файлы-примеры не приживаются?
не предполагал, что для данной проблемы файл примера чем-то поможет. Суть проблемы, скорее, теоретического характера. И гораздо бОлее значимая проблема в обрывочных знаниях инициатора темы)
Цитата
МатросНаЗебре написал:
Убрать кавычки в формуле условного форматирования. VBA
да, это сработало. Спасибо!
Цитата
vikttur написал:
Кто в трезвом состоянии сравнивает число 2 с текстом "2"?!
есть такое... трезвый ум явно не про меня)

Всем спасибо! 5 минут позора..., зато вопрос решен. Буду учить матчасть!
 
Цитата
vikttur написал:
Кто в трезвом состоянии сравнивает число 2 с текстом "2"
Off. Писатели на VBA, SQL, PL/SQL, ... (True)
Изменено: sokol92 - 05.12.2019 14:41:40
Владимир
Страницы: 1
Наверх