我正在尝试遍历工作簿中的所有工作表。我有以下代码,它完全正常;唯一的问题是它只有在我在第一张纸上启动宏时才有效;如果我在其他任何地方这样做,它只会在第一次循环后停止。
WS_Count = ActiveWorkbook.Worksheets.Count
For i = 1 To WS_Count
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.ActiveSheet
'if sheet contains evdre
Set c = ws1.Cells.Find("blabla")
If Not c Is Nothing Then
'do things
End If
Next i
我不确定这个问题是否是因为宏应该始终在第一张表上启动,或者代码中是否有错误。 谢谢你的帮助
EDIT 在'做某事部分,我实际上正在创建隐藏的工作表(我活跃的那个的隐藏副本);可以让计数陷入困境吗?因此只能在第一张表中使用
答案 0 :(得分:3)
Dim ws As Worksheet, c as range
for each ws in ThisWorkbook.WorkSheets
Set c = ws.Cells.Find("blabla")
If Not c Is Nothing Then
'do things
End If