下一个循环没有停止的问题
Trouble with for next loop not stopping
我正在尝试获取多个 sheet 的所有行,并复制 D 列 中包含 waiting 的单元格到一个叫等待的sheet。这是代码。循环 运行 太远导致重复粘贴。
我认为是 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
我正在尝试获取多个 sheet 的所有行,并复制 D 列 中包含 waiting 的单元格到一个叫等待的sheet。这是代码。循环 运行 太远导致重复粘贴。
我认为是 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