使用If语句执行Do Until直到达到某个值

时间:2018-03-23 16:48:07

标签: excel vba excel-vba

我正在处理大型数据表。我需要从特定单元格中减去代码,直到该值大于某个数字。如果没有达到这个数字,我希望它转到0.

例如A3-A2 > Q5 then E3= A3-A2 if < Q5 do A3-A1。如果这不起作用E2=0。我需要在整个A栏中连续进行。到目前为止,我的代码如下:

Do Until Range("A3").Offset(1, 0) - Range("A2") > Range("Q5")
  If Range("A3").Offset(1, 0) - Range("A2") > Range("Q5") Then
    Range("E3").End(xlDown) = Range("A3").Offset(1, 0) - Range("A2")
  Else: Range("E3").End(xlDown) = 0
  End If
Loop

它似乎不喜欢我进入它的方式。我不认为偏移是正确的。

enter image description here

1 个答案:

答案 0 :(得分:-2)

使用WhileUntilWhile...WEnd是一种不好的做法。 使用具有全功能条件检查代码的无条件Do...LoopExit Do,您可以在任何周期中找到它,但不能仅在其开头或结尾。

-1?好的:))

  

MS F1:提示Do ... Loop语句提供了一种更加结构化和灵活的循环方式。

这&#34;服务&#34;只是为了懒惰。我对WhileUntil的否定是这句话的直接结果,正是实现&#34;结构化和灵活的&#34; ,关于要求哪个topick启动器。