如何根据循环中的单元格值更改文本框的颜色?

时间:2019-05-29 19:19:19

标签: excel vba loops textbox backcolor

在用户窗体上,我有一个“下一个”按钮,该按钮在工作表中循环。如果CL列中的单元格=“是”,则将textbox10的颜色更改为Yellow,否则将其保留为白色。问题是,如果我没有“ Else”语句,它只会变为黄色,然后不会变成白色。

我尝试将Private Sub TextBox10_Change()更改为Private Sub TextBox10_Enter(),然后还添加了... Textbox10_Exit(),但结果仍然相同。

Private Sub TextBox10_change()

Dim i As Integer

Dim Lastrow As Integer

Lastrow = Cells(rows.Count, 1).End(xlUp).Row

For i = 2 To Lastrow

If ActiveSheet.Range("CL" & i) = "yes" Then
    Me.TextBox10.BackColor = vbYellow
Else
    Me.TextBox10.BackColor = vbWhite
End If

Next i

End Sub

基本上,除非删除,否则什么也不会发生:

Else

  Me.Textbox10.BackColor = vbWhite

即使是黄色,也不会变回白色。

2 个答案:

答案 0 :(得分:0)

您的代码可以使用,但是将与最后一行中的任何内容匹配(即,如果最后一行为“是”,则为黄色)。

如果您希望如果值中的任何一个为“ yes”则为黄色,如果都不为“ yes”则为白色

Me.TextBox10.BackColor = vbWhite
For i = 2 To Lastrow
    If ActiveSheet.Range("CL" & i) = "yes" Then
        Me.TextBox10.BackColor = vbYellow    
    End If
Next i

答案 1 :(得分:0)

编写方式将仅根据最后一行的CL值显示文本框的颜色变化,您是否希望它一次循环浏览一行?

相关问题