根据单元格值更改ActiveX控件文本框的颜色

时间:2019-04-16 01:13:36

标签: excel vba

我有三个链接到单元格的Form Controls选项按钮,比方说A1。当选择optionbutton1 A1 = 1时,当选择optionbutton2 A1 = 2时,并且当选择optionbutton3 A1 = 3时。当A1 = 1或2时,我希望我的ActiveX控件文本框为白色,而当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 :(得分:0)

如果有3个用于更改此A1单元格值的选项按钮,则可以改为检查选项按钮的值。然后你可以 a)单击这些选项按钮之一时,更改文本框的颜色;要么 b)设置文本框的文本,然后将触发文本框的change事件。

如果选择了选项按钮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