【发布时间】:2017-05-23 03:55:41
【问题描述】:
我目前正在使用 Excel 2010 并尝试运行一些我在 VBA for Applications 中组合的代码(在按下 alt+F11 后)。我在记事本中输入了代码,双击我想要处理的项目后出现的记事本。我还将所有内容保存为 Excel 启用宏的工作簿 (*.xlsm)。
如果列 S、T 和 U 符合条件,我正在尝试将 D 列的背景着色为绿色或红色。如果列的值都为 0,则单元格 D 应为绿色。如果不是,它应该是红色的。
Sub GreenOrRed()
Dim i As Integer
For i = 2 To i = 27293
If (Cells(i, "S").Value = 0 And Cells(i, "T").Value = 0 And Cells(i, "U").Value = 0) Then
Cells(i, "D").Interior.ColorIndex = 10
Else
Cells(i, "D").Interior.ColorIndex = 9
End If
Next i
End Sub
代码运行并且没有抛出任何错误,但它也没有做任何事情。我做错了什么?
【问题讨论】:
-
只是为了让您了解为什么
For循环是有效的,但没有做任何事情......您的声明实际上是For i = 2 To (i = 27293)。在循环初始化时,i为 0,因此i = 27293等于False。False,当被强制转换为Integer时,为 0。因此,您的语句将变为For i = 2 To 0。因为 2 已经大于 0,所以控制立即跳转到Next i之后的语句。 -
大家好,感谢您的回复。我发现我的问题是我没有将“Worksheets(Sheet).Cells”放在所有单元格之前。一旦我这样做了,我就能让我的东西正常工作。我还将函数从 For 循环更改为 While 循环。
标签: vba excel excel-2010