当IF语句为真时,“Next”不能在循环中工作

我正在检查当前行中包含唯一标识(多列连接)的单元格,并将其与其唯一标识之上的行进行比较。 如果值相同,我想复制当前行,并将此副本插入到位于当前行上方两行的新行中。 如果ID不一样,我不想做任何事情,并移动到工作表的下一行。

下面的代码运行没有错误,并正常工作,直到find一个ID匹配。 代码复制和插入,如我所需要的,但它的行为就像是在同一行再次启动“IF”语句(“下一个”不会提前分析下一行)。 所以我最终得到无尽的副本,并插入第一行,其中有一个匹配的唯一ID到上面的行。

Sub CopyAndInsert Dim LastRow As Long LastRow = Worksheets("Orders").Range("A" & Rows.Count).End(xlUp).Row Set SelectionRNG = Worksheets("Orders").Range("A2:CX" & LastRow) For Each rngrow In SelectionRNG.Rows rngrow.Copy If rngrow.Cells(1, 102) = rngrow.Cells(0, 102) Then 'checks if row CX is equal to the row above it (same column) rngrow.Cells(2, 1).Offset(-2, 0).EntireRow.Insert End If Next End Sub 

请注意,如果行在唯一标识列(CX)中不匹配,那么“下一步”按预期工作并继续到下一行。 只有在ID匹配并插入复制的行时才会发生不前进的问题。

在此先感谢您的帮助!

将循环连接到一个variables,手动增加1跳过添加的行似乎工作:

 Sub CopyAndInsert() Dim lastRow As Long, x As Long lastRow = Worksheets("Orders").Range("A" & Rows.Count).End(xlUp).Row For x = 3 To lastRow If Cells(x, 102) = Cells(x - 1, 102) Then Cells(x - 1, 1).EntireRow.Insert Range("A" & x + 1 & ":" & "CX" & x + 1).Copy Cells(x - 1, 1) x = x + 1 End If Next x End Sub