首页 > 解决方案 > 尽管条件有效,vba 执行直到循环不进入

问题描述

我不会带来整个代码,我会尝试展示相关的内容。以下代码(在循环内,但没关系)调用返回整数的函数(compareStrings)。

Sheet1.Range("S" & i).Value = compareStrings(sheet1.Range("J" & i).Value, sheet1.Range("K" & i).Value)

所以基本上我有一个循环,用整数填充列 S。然后我按升序对 S 列进行排序。后来我有另一个循环,它应该对所有小于 5 的值做一些事情。

循环如下所示:

With Sheet1.Range("S" & i)
    Do Until .Value < 5
        If .Value = 0 Then
            'some statement
        Else
            'some statement
        End If
        i = i + 1
    Loop

End With

出于某种原因,尽管我有很多行的值为 < 5,但它没有进入循环。我实际上试图将其更改为 <>,但它也没有进入。好像它没有将其视为整数,尽管我已将整数放入这些单元格中。

有任何想法吗?

谢谢

标签: excelvbaloops

解决方案


“我有另一个循环应该对所有小于 5 的值做一些事情。”

你的逻辑虽然没有意义。

Do Until .Value < 5值小于 5 时不会做任何事情。这与说“如果我的值大于等于5,则采取行动。

Do While可能是更好的选择。


推荐阅读