Я пытаюсь написать макрос Excel, чтобы автоматически изменить цвет в текстовом поле на основе входного значения из ячейки на листе. Код, который я в настоящее время является:Excel Macro Change TextBox Color
Private Sub TextBox1_Change()
'Declare Variables
Dim cell As Range
Dim color As String
'Initialize Variables
Set cell = Range("A1")
color = cell.Value
'Set TextBox Color
If color = "" Then TextBox1.BackColor = RGB(255, 255, 255) 'white
If color = "1" Then TextBox1.BackColor = RGB(255, 0, 0) 'red
If color = "2" Then TextBox1.BackColor = RGB(0, 255, 0) 'green
If color = "3" Then TextBox1.BackColor = RGB(0, 0, 255) 'blue
End Sub
Это должно считывать значение из ячейки A1, а затем изменить цвет текстового поля на основе этого значения. Мой код успешно меняет цвет текстового поля, но он не обновляется до тех пор, пока я не нажму в текстовое поле и не наберу что-нибудь. Есть ли способ сделать обновление цвета, как только значение будет введено в ячейку A1?
Если было бы проще сделать это с каким-то другим объектом, я не привязан к текстовому полю, но не могу просто использовать ячейку.
'не привязаны к textbox' то условное форматирование для ячейки? – findwindow
Это было бы бесконечно легче. К сожалению, ячейка является одной из немногих вещей, которые я не могу использовать. Это должен быть какой-то объект excel (т. Е. Textbox, lable ect.). – drylkuch
Хмм, может быть, событие 'worksheet_change'? – findwindow