【问题标题】:Else case running even if true (If/Else)即使为真,其他情况也会运行(If/Else)
【发布时间】:2016-10-08 11:49:40
【问题描述】:

我目前正在使用 VBA 处理 excel,我真的需要一些帮助。

如下所示,我实际上是在尝试检查所有单元格的特定值 (2090),如果在该行中找到 2090,则输出“1”,否则输出“0”。此输出将位于第 25 列,并且与数字所在的行位于同一行。

我做了一些测试,我知道我的代码在遇到 2090 时确实会输出“1”并在正确的位置输出等。但是,在输出“1”之后,它会立即被“重叠” 0” 再次。因此,即使 If 语句为真,我相信 else 案例仍在运行。在执行结束时,我的整个专栏只产生了一堆“1”,没有别的。

我将不胜感激任何形式的帮助!谢谢。

Sub New()
Dim i As Integer, j As Integer, Needed As Integer
Needed = 2090
For i = 1 To 10
For j = 1 To 20
    If Cells(i, j).Value = Needed Then
       Cells(i, 25).Value = "1"
    Else
       Cells(i, 25).Value = "0"

    End If
Next j
Next i
End Sub

【问题讨论】:

    标签: excel vba loops if-statement


    【解决方案1】:

    如果说Cells(2, 10) 符合您的条件,Cells(2, 25) 将设置为1,但随后它会立即继续测试Cells(2, 11) 是否符合您的条件,如果不符合,Cells(2, 25) 将被0覆盖。

    最终结果将始终取决于第 20 列中的内容。

    如果条件计算结果为真,您需要跳出内部循环。

    【讨论】:

    • 哦,非常感谢!这完全让我忘记了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2011-10-25
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多