在用户窗体上,我有一个“下一个”按钮,该按钮在工作表中循环。如果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
即使是黄色,也不会变回白色。
答案 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值显示文本框的颜色变化,您是否希望它一次循环浏览一行?