我正在尝试使用For for each循环搜索工作簿的所有工作表名称中的特定字符串,如下所示:
For Each Sheet In ActiveWorkbook.Sheets
Name = ActiveSheet.Name
Next Sheet
但我无法使用上面的代码获取所有工作表名称,因为它只会卡在一个工作表名称上。
获取工作表名称后我想在工作表名称中搜索特定字符串所以如果有人可以帮我搜索所有工作表中的字符串,那就太棒了。
答案 0 :(得分:3)
For Each sheet In ActiveWorkbook.Sheets
If sheet.Name Like "*" & strSearch & "*" Then
Debug.Print "Found! " & sheet.Name
End If
Next
您遍历所有工作表,但始终在循环中使用ActiveSheet.Name
。
要搜索模式,您可以将Like
与*
通配符一起使用。
答案 1 :(得分:3)
你也可以使用InStr功能......或者我没有正确地回答你的问题。
Sub CheckSheets()
Dim oSheet As Excel.Worksheet
For Each oSheet In ActiveWorkbook.Sheets
If InStr(UCase(oSheet.Name), UCase("Sheet")) Then
Debug.Print oSheet.Name
End If
Next oSheet
End Sub
答案 2 :(得分:0)
查看以下链接: