我的macros是runnig,但跳过行
我有这个代码移动任何东西命令到另一个工作表,它的工作原理,除了它跳过行,我必须运行几次,让一切移动,任何帮助将不胜感激谢谢
Sub MoveLS() Dim h As Variant Dim endrow As Integer Dim SB As Worksheet, ORDERED As Worksheet Set SB = ActiveWorkbook.Sheets("SB") Set ORDERED = ActiveWorkbook.Sheets("ORDERED") endrow = SB.Range("A" & SB.Rows.Count).End(xlUp).Row For h = 2 To endrow If SB.Cells(h, "H").Value = "Ordered" Then SB.Cells(h, "H").EntireRow.Cut Destination:=ORDERED.Range("A" & ORDERED.Rows.Count).End(xlUp).Offset(1) SB.Cells(h, "H").EntireRow.Delete End If Next End Sub
当你迭代你正在跳过的行。
相反,从下往上删除:
For h = endrow to 2 Step -1 If SB.Cells(h, "H").Value = "Ordered" Then SB.Cells(h, "H").EntireRow.Cut Destination:=ORDERED.Range("A" & ORDERED.Rows.Count).End(xlUp).Offset(1) SB.Cells(h, "H").EntireRow.Delete End If Next
问题在于,每当你剪一排,你也跳过下一行。
例如
- 您的索引是5。
- 第5行符合你的条件
- 你裁剪第5行,然后粘贴到另一张纸上
- 排6成为新排5
- 该指数移动到6
- 评估第6行(之前的第7行),并跳过先前的第6行。
尝试复制行而不是剪切它!