嵌套for循环的不等式

时间:2017-12-11 16:24:00

标签: excel vba

再次是我。

我有一个嵌套的for循环,查看一个范围内的每个单元格然后移动到下一列(需要嵌套,即使是2,因为稍后我有300列和行要检查(这是一次测试尝试) )宏检查单元格的值,然后根据值更改单元格的颜色。然而,当我运行代码时,宏将颜色索引36的所有内容都与单元格的值不相关。任何人都可以解释原因吗?

Dim i12 as long 
Dim i9 as long 

i12 = 3
For i12 = i12 To 4
i12 = i12
i9 = 21
    For i9 = i9 To 71
        i9 = i9
        If 0 < Cells(i9, i12) < 1 Then
            Cells(i9, i12).Select
            Selection.Interior.ColorIndex = 36
        ElseIf Cells(i9, i12) < 0 Then
            Cells(i9, i12).Select
            Selection.Interior.ColorIndex = 3
        Else
        End If
    Next i9
Next i12

我认为这个问题来自0 < Cells(i9, i12) < 1,可能是因为VBA无法应对这个等式,但我不确定。 感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:3)

是的,你不能这样做,If 0 < Cells(i9, i12) < 1 Then

您需要两个条件,

If Cells(i9, i12) > 0 And Cells(i9, i12) < 1 Then

您也不需要选择单元格:

替换

Cells(i9, i12).Select
Selection.Interior.ColorIndex = 3

Cells(i9, i12).Interior.ColorIndex = 3

(当您看到Select后跟.Selection时,您可以删除这两个字词。)

答案 1 :(得分:0)

AndyG说,你需要在IF语句中定义条件两次,并使用Interior.ColorIndex来设置颜色。