嵌套为循环的不等式

又是我。

我有一个嵌套的for循环,看在一个范围内的每个单元格,然后移动到下一列(需要嵌套,即使是2,以后我有300列和行检查(这是一个testing尝试))macros检查单元格的值,然后根据值更改单元格的颜色。 但是,当我运行的代码,该macros的颜色指数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无法应付这个等式,但是我不确定。 感谢您能够提供的任何帮助。

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

你需要两个条件,

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

您也不需要select单元格:

更换

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

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

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

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