我試圖檢查當前行中包含唯一ID(連續的幾列)的單元格,並將它與其唯一ID上方的行進行比較。如果值相同,我想複製當前行並將此副本插入位於當前行上方兩行的新行中。如果ID不一樣,我不想做任何事情,並移動到工作表上的下一行。當IF語句爲真時,「Next」不能在循環中工作
下面的代碼運行沒有錯誤,並且正常工作,直到找到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
請注意,如果行在唯一ID列(CX)中不匹配,則「下一個」按預期工作並繼續到下一行。只有當ID匹配並插入複製的行時,纔會發生不前進的問題。
在此先感謝您的幫助!
因爲你在那裏插入行,並隨後改變循環的初始範圍。 – cyboashu
插入或刪除行時,最好從底部到頂部遍歷列表。 –
在if循環中寫'Next'。在外面也是 –