Как изменить цвет фона текстового поля с помощью кнопки

#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 .