条件格式化excel文本框

时间:2016-02-11 01:47:43

标签: excel vba excel-vba

根据链接单元格的值更改单个文本框的字体颜色的最佳方法是什么?

当录制宏时,文本框位于sheet1上,它将文本框识别为ActiveSheet.Shapes.Range(Array("TextBox 1")).Select

我在sheet1上插入了一个图像,然后从插入工具栏中插入了文本框。所有文本框都链接到"造型师"上的数据。片。打开工作簿时,此工作表将使用宏进行更新。我试图将文本框字体变为红色或绿色,这是基于将链接单元格的值与造型师表单上的另一个单元格进行比较。

enter image description here

2 个答案:

答案 0 :(得分:0)

请试试这个..

' replace Text with your text box name
ActiveSheet.Text.Object.ForeColor = RGB(0, 255, 0)

答案 1 :(得分:0)

使用您提供的代码并将其描述为具有链接的单元格,可以假设您指的是ActiveX工具栏中的TextBox。

该文本框的代码位于Worksheet模块中。右键单击工作表选项卡,然后选择查看代码以打开该模块。

enter image description here

如果您的链接单元格是A1,那么我们可以使用Worksheet_Change事件在您更改A1时触发代码。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address <> "$A$1" Then Exit Sub

    Dim x
    x = IIf(Target <= 0, vbRed, vbGreen)

    Me.TextBox1.ForeColor = x

End Sub

您还可以使用TextBox1_Change事件,这会在文本框更改时触发。

Private Sub TextBox1_Change()
    Dim x

    x = IIf(TextBox1.Value <= 0, vbRed, vbGreen)
    Me.TextBox1.ForeColor = x

End Sub

你没有说明条件是什么,所以我自己做了。这个例子使用,

  

如果&lt; = 0则为红色,否则为绿色

结果将是

enter image description here