我对以下代码有疑问。我刚刚开始学习这一点,当我做一个简单的练习时,结果发现代码实际上是随机工作的。
有时什么也没做,有时只选择一种情况,但从未应用正确的格式。我很困惑
您能帮忙吗? ;)
Sub Colors()
Dim Check As String
Check = ActiveCell.Value
Range("A2").Select
Do While ActiveCell.Value <> ""
Select Case Check
Case "Red"
ActiveCell.EntireRow.Interior.Color = RGB(200, 100, 100)
Case "Blue"
ActiveCell.EntireRow.Interior.Color = RGB(100, 100, 200)
Case "Green"
ActiveCell.EntireRow.Interior.Color = RGB(100, 200, 100)
End Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
答案 0 :(得分:1)
\Teradata\Client\16.20\bin\ was unexpected at this time.
在循环的每次迭代中都为常数,因此Check
总是求值相同,并且此过程的执行结果仅取决于碰巧是任何单元格的值Select Case Check
在调用过程时。
Avoid Select and Activate,但要解决当前的直接问题,您需要在此处将ActiveCell
替换为Check
,并可能明确地调用其ActiveCell
成员:>
Value
Select Case ActiveCell.Value
分配变得多余,现在循环将从A2开始依次激活一个单元格,评估其内容并相应地设置内部颜色。
使用条件格式设置规则应用于整个行,也可以在不使用任何VBA代码的情况下实现此目的。考虑改用条件格式。