Excel中的VBA正在跳过第二个Do Until Until Loop完全

我一直在编写一些代码,其中包含几个Do Until Loops,但是当我运行它时,第一个循环的工作如预期,但第二个和其他循环完全绕过。

我已经在独立的子例程中运行独立的循环,并根据需要进行工作。

我也检查了以前的线程,似乎无法find同样的问题的一个例子。

我最初试图重新声明i = 2的第二个循环思考i仍然重视>比lastRow从第一个循环。 除此之外,我还尝试将第二个循环中的variables从i更改为j ,但这也没有什么区别。

这里是我使用的代码的一个例子:

 Dim i As Long i = 2 Do Until i > lastRow Cells(i, 16).Select If ActiveCell.Offset(rowOffset:=0, columnOffset:=-13) <> "Invoice" Then ActiveCell = "" ElseIf ActiveCell.Offset(rowOffset:=0, columnOffset:=-12) <> "" Then ActiveCell = "" ElseIf ActiveCell.Offset(rowOffset:=0, columnOffset:=-9) <> "Usage Actual" Then ActiveCell = "" ElseIf ActiveCell.Offset(rowOffset:=0, columnOffset:=-3) = "Final" Then ActiveCell = "" Else: ActiveCell. _ FormulaR1C1 = ' vlookup formula to data source End If i = i + 1 Loop ' Additional code to paste out formula and save work book Dim j As Long j = 2 Do Until j > lastRow ' from here the process skips right past the next loop to the Additional code to paste out formula and save work book noted below Cells(j, 17).Select If ActiveCell.Offset(rowOffset:=0, columnOffset:=-1) = "Yes" Then ActiveCell.FormulaR1C1 = ' vlookup formula to data source Else: ActiveCell = "" End If j = j + 1 Loop ' Additional code to paste out formula and save work book 

我已经做了好几天了,而且已经没有想法了。

我终于设法让代码工作。 我最终使用的方法涉及2个变化。

首先,我给每个循环都有自己的Do Untilvariables – 上面贴出的代码以i作为第一个variables,下一个变成了j,然后是k等等。

直到我在每个循环之间添加了额外的进程之前,它本身并没有最初解决这个问题。

例如,在第一个循环之后,我添加了代码在另一列中执行查找,并将查找复制到lastRow,但不使用循环来完成。 我跟着这个下一个循环,并跟着进一步的代码,也不需要一个循环来完成。

幸运的是,我有足够的额外stream程来分解项目中的所有循环。 尽pipe我仍然相信一个接一个地运行多个循环不应该是一个问题,但我还没有find一个更有效的解决scheme。