Excel 循环的嵌套不等式
又是我 我有一个嵌套的for循环,查看范围内的每个单元格,然后移动到下一列(需要嵌套,即使是2列,因为后面我有300列和行要检查(这是一个测试尝试))。宏检查单元格的值,然后根据值更改单元格的颜色。但是,当我运行代码时,宏使用颜色索引36对所有内容进行着色,与单元格的值无关。有人能解释为什么吗Excel 循环的嵌套不等式,excel,vba,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
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
Dim i12的长度
暗i9一样长
i12=3
对于i12=i12到4
i12=i12
i9=21
对于i9=i9到71
i9=i9
如果0<单元(i9,i12)<1,则
单元格(i9、i12)。选择
Selection.Interior.ColorIndex=36
ElseIf细胞(i9,i12)<0
单元格(i9、i12)。选择
Selection.Interior.ColorIndex=3
其他的
如果结束
下一个i9
下一个i12
我认为问题来自这里的0
,可能是因为VBA无法处理这个等式,但我不确定。
谢谢你能提供的任何帮助 是的,您不能这样做,
如果0<单元格(i9,i12)<1,则
你需要两个条件
If Cells(i9, i12) > 0 And Cells(i9, i12) < 1 Then
与
(当您看到
Select
后接。Selection
可以删除这两个术语。)是的,您不能这样做,如果0<单元格(i9,i12)<1,则
你需要两个条件
If Cells(i9, i12) > 0 And Cells(i9, i12) < 1 Then
与
(当您看到
Select
后接.Selection
时,您可以删除这两个术语。)如AndyG所说,您需要在IF语句中定义两次条件,并使用Interior.ColorIndex设置颜色。如AndyG所说,您需要在IF语句中定义两次条件,然后使用Interior.ColorIndex设置颜色。您认为0<单元格(i9,i12)<1是错误的,这是正确的。如果我添加括号来显示优先级,它将读取(0<单元格(i9,i12))<1,因此您将0<单元格(i9,i12)的真值或假值与1进行比较。将其分为两个子句,并在它们之间使用“And”运算符。当0<单元格(i9,i12)
计算为False
(即0
)时,0<1
计算为True
。当0
的计算结果为True
(即-1
)时,-1的计算结果也为True
@dragonThinks非常感谢您的评论,很高兴能解释为什么有些东西不起作用,而不仅仅是解决方案,我发现这对我以后处理与此相关的问题总是有帮助。FWIW你应该做单元格(i9,i12)。Interior.ColorIndex=3
,而不是像宏录制器代码那样选择并关闭选择。还请注意,单元格
与工作簿
对象不符,它隐式引用了活动表
,这将在某一天或另一天产生问题,特别是当您选择内容时。例如,做Sheet1.单元格(i9,i12)
而不仅仅是单元格
。你认为0<单元格(i9,i12)<1是错误的,这是对的。如果我添加括号来显示优先级,它将读取(0<单元格(i9,i12))<1,因此您将0<单元格(i9,i12)的真值或假值与1进行比较。将其分为两个子句,并在它们之间使用“And”运算符。当0<单元格(i9,i12)
计算为False
(即0
)时,0<1
计算为True
。当0
的计算结果为True
(即-1
)时,-1的计算结果也为True
@dragonThinks非常感谢您的评论,很高兴能解释为什么有些东西不起作用,而不仅仅是解决方案,我发现这对我以后处理与此相关的问题总是有帮助。FWIW你应该做单元格(i9,i12)。Interior.ColorIndex=3
,而不是像宏录制器代码那样选择并关闭选择。还请注意,单元格
与工作簿
对象不符,它隐式引用了活动表
,这将在某一天或另一天产生问题,特别是当您选择内容时。例如,使用Sheet1.单元格(i9,i12)
而不是只使用单元格
。谢谢。工作完美:)如果它工作完美,你应该接受正确的答案,而不仅仅是评论。@DragonThinks我不能,对于一些人来说再过10分钟左右也不行reason@AndyG. 谢谢你的提示,我也不知道。谢谢,谢谢。工作完美:)如果它工作完美,你应该接受正确的答案,而不仅仅是评论。@DragonThinks我不能,对于一些人来说再过10分钟左右也不行reason@AndyG. 谢谢你的提示,我也不知道。非常感谢。
Cells(i9, i12).Interior.ColorIndex = 3