下一个循环不停止的问题



我正在尝试获取多张工作表上的所有行,其中 D 列中的单元格包含复制到名为等待的工作表中的单元格。这是代码。循环运行太远,导致重复粘贴。
我认为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

Dim c As Range
Dim j As Integer
Dim Target As Worksheet
Set Target = ActiveWorkbook.Worksheets("Waiting")
j = 1
For Each sh In Worksheets
    if sh.name <> target.name then
        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
    end if
Next sh

最新更新