如何根据vba中的值更改文本框的背景颜色?

时间:2016-07-06 20:27:25

标签: vba excel-vba excel

所以我有2个文本框A和B,它们通过命令按钮单击自动填充。

如果文本框中的值发生更改(如果用户手动更改其中的值),如何更改文本框的背景颜色?

非常感谢!

2 个答案:

答案 0 :(得分:2)

单击CommandButton时:

TextBox1.Backcolor = 'something (example: &H000000FF&)

如果更改了TextBox的内容,请使用:

Private Sub TextBox1_Change()
   'Change the color
   'Just an example:

   If TextBox1.Text = "Hello" then
      TextBox1.Backcolor = &H0000C000&
   Else 
      TextBox1.Backcolor = &H000000FF&
   End If

End Sub

.0事:

Label1.Caption = Ineteger & ".0"

你真的不需要四舍五入或任何东西,因为你有整数。

答案 1 :(得分:1)

Vinay,你会这样做:

Private Sub TextBox1_Change()
   TextBox1.BackColor = RGB(255, 0, 0)
End Sub

你想把它放在TextBox1对象中(双击它会让你到那里)。更改文本框的值时将触发颜色更改。如果我正确地研究你的问题,这应该可以解决你的问题。如果没有,请告诉我。

补充:代码细分

Private Sub TextBox1_Change()是一个事件处理程序。只要发生特定事件,内部代码就会运行。在这种情况下,只要TextBox1中的文本发生更改。 TextBox1.BackColor = RGB(255, 0, 0)

TextBox1是一个对象,在这种情况下它是你的第一个texbox默认名为“TextBox1”,但我们可以使用你的表单中的任何其他对象,“TextBox2”,“Button1”等。

.BackColorTextBox1(其背面颜色)的属性。我们可以将BackColor属性设置为任何有效颜色,但在这里我选择了红色。

RGB代表红绿蓝。在这种情况下,我们将TextBox的背面设置为颜色等于255(全红),0(没有绿色)和0(无蓝色)。

补充2 因此,根据您的上一条评论,您可能希望执行以下操作:

Private Sub TextBox1_Change()
    If TextBox1.Text = "5" Then
        TextBox1.BackColor = RGB(255, 255, 255)
    ElseIf TextBox1.Text = "6" Or TextBox1.Text = "4" Or TextBox1.Text = "5.6" Then
        TextBox1.BackColor = RGB(255, 0, 0)
    End If
End Sub