Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 循环的嵌套不等式_Excel_Vba - Fatal编程技术网

Excel 循环的嵌套不等式

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

又是我

我有一个嵌套的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
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