#excel #vba #colors #textbox
#excel #vba #Цвет #текстовое поле
Вопрос:
Я пытаюсь создать файл Excel, в котором у меня есть макрос, который изменяет цвет заливки текстового поля. Этот макрос будет активирован, когда пользователь нажимает на кнопку (элемент управления формой). Я довольно новичок в VBA (и программировании в целом), и у меня возникли проблемы с написанием кода для этого. Я просмотрел другие форумы и попытался применить то, что прочитал, но, похоже, все решают проблемы, используя другую структуру кода и / или синтаксис. Логика моего кода по существу заключается в следующем:
Пользователь нажимает на кнопку, чтобы активировать макрос:
If TextBox1 BackColor = RGB (191, 191, 191)
Then TextBox1 BackColor = RGB(242, 242, 242)
Else if TextBox BackColor = RGB(242, 242, 242)
Then TextBox1 BackColor = RGB(191, 191, 191)
Комментарии:
1. Запустите macro recorder, измените цвет текстового поля и возьмите его оттуда. Точный VBA будет зависеть от используемой версии Excel. Pre 2007 отличается от 2007 и выше.
2. Поставьте точку между «TextBox1» и «BackColor», например
TextBox1.BackColor
. Кроме того,ElseIf
это одно слово. Как говорит @teylyn, запись макросов покажет это и другие полезные вещи.
Ответ №1:
Я пробовал это, и это должно сработать для вас. Я прикрепил его к кнопке, и он работал нормально:
If TextBox1.BackColor = RGB(191, 191, 191) Then
TextBox1.BackColor = RGB(242, 242, 242)
ElseIf TextBox1.BackColor = RGB(242, 242, 242) Then
TextBox1.BackColor = RGB(191, 191, 191)
End If
Вы используете точку (.), Чтобы перейти к свойствам объекта, поэтому TextBox1.BackColor .