【发布时间】:2018-07-07 15:37:31
【问题描述】:
我正在尝试将 列 D 中包含 waiting 的单元格的多张工作表上的所有行复制到名为 waiting 的工作表中。这是代码。循环运行太远导致重复粘贴。
我认为是 j = j + 1 造成的,但我不知道如何纠正。
Sub Waiting()
' unfilter entire workbook
Dim sh As Worksheet
For Each sh In Worksheets
sh.AutoFilterMode = False
Next sh
' copy rows to waiting sheet
Dim c As Range
Dim j As Integer
Dim Target As Worksheet
Set Target = ActiveWorkbook.Worksheets("Waiting")
j = 1
For Each sh In Worksheets
For Each c In sh.Range("D1:D250") ' Do 1000 rows
If c = "waiting" Then
sh.Rows(c.Row).Copy Target.Rows(j)
j = j + 1
End If
Next c
Next sh
' j=j+1 is causing infinite loop
End Sub
【问题讨论】:
-
如果
sh.name = target.name,则需要跳过sh。
标签: vba excel for-loop infinite-loop