Vba 下一个循环未停止时的故障
我正在尝试将多张工作表中包含等待的列D中的单元格的所有行复制到名为等待的工作表中。这是代码。循环运行太远,导致重复粘贴Vba 下一个循环未停止时的故障,vba,excel,for-loop,infinite-loop,Vba,Excel,For Loop,Infinite Loop,我正在尝试将多张工作表中包含等待的列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
我认为是
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
尺寸c作为范围
作为整数的Dim j
将目标变暗为工作表
Set Target=ActiveWorkbook.Worksheets(“等待”)
j=1
对于工作表中的每个sh
如果是sh.name target.name,则
对于sh范围(“D1:D250”)中的每个c,执行1000行
如果c=“等待”,则
sh.Rows(c.Row).复制Target.Rows(j)
j=j+1
如果结束
下一个c
如果结束
下一个sh
您需要跳过sh
如果sh.name=target.name
.jsyk,如果c=“waiting”,则
是区分大小写的比较。这就是为什么我将循环中的工作表名称与目标工作表名称进行比较,而不是将字符串“Waiting”进行比较。