Изменить цвет текстового поля элемента управления ActiveX на основе значения ячейки - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть три кнопки опции Form Controls, связанные с ячейкой, скажем, A1.Когда optionbutton1 выбрано A1 = 1, когда optionbutton2 выбрано A1 = 2, и когда optionbutton3 выбрано A1 = 3. Когда A1 = 1 или 2, я хочу, чтобы мое поле ActiveX Controls было белым, а когда A1 = 3, я хочутекстовое поле должно быть желтым.Это код, который я придумал, но цвет текстового поля не меняется.

Private Sub TextBox1_Change()

If Sheets(12).Range("A1") = 3 Then
TextBox1.BackColor = RGB(255, 255, 0)
Else: TextBox1.BackColor = RGB(0, 0, 0)
End If

End Sub

1 Ответ

0 голосов
/ 16 апреля 2019

Если у вас есть 3 кнопки выбора, которые изменяют значение этой ячейки A1, вы можете вместо этого проверить значение кнопок выбора. И тогда вы можете либо а) изменить цвет текстового поля при нажатии одной из этих кнопок выбора; или же б) установить текст текстового поля, а затем запустить событие изменения текстового поля.

Если выбраны дополнительные кнопки 1 или 2, то раскрасьте их в желтый, в противном случае раскрасьте в белый. Примерно так (учтите, что белый цвет RGB (255, 255, 255) ):

Private Sub OptionButton1_Click()
    Sheets(1).Range("A1") = 1
    TextBox1.Text = 1
'    TextBox1.BackColor = RGB(0, 0, 0)
End Sub
Private Sub OptionButton2_Click()
    Sheets(1).Range("A1") = 2
    TextBox1.Text = 2
'    TextBox1.BackColor = RGB(0, 0, 0)
End Sub
Private Sub OptionButton3_Click()
    Sheets(1).Range("A1") = 3
    TextBox1.Text = 3
'    TextBox1.BackColor = RGB(255, 255, 0)
End Sub
Private Sub TextBox1_Change()
    If OptionButton1.Value Or OptionButton2.Value Then
        TextBox1.BackColor = RGB(255, 255, 0) 'yellow
    Else
        TextBox1.BackColor = RGB(255, 255, 255) 'white
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...