我有这个VBA代码,搜索工作表名称,该代码有效。
如何将其更改为仅搜索部分名称? 全名狗,部分名字做*,像这样...
Dim xName As String
Dim xFound As Boolean
xName = InputBox("הכנס/י שם ספק לחיפוש בקובץ", "Sheet search")
If xName = "" Then Exit Sub
On Error Resume Next
ActiveWorkbook.Sheets(xName).Select
xFound = (Err = 0)
On Error GoTo 0
If xFound Then
Else
MsgBox ("הספק " & xName & " לא נמצא")
End If
答案 0 :(得分:3)
在这种情况下,不需要(也没有推荐)使用On Error Resume Next
。
浏览工作表,然后将工作表的名称与所需的值进行比较。您可以使用通配符*
,也可以使用Instr
函数。
Dim xName As String
Dim xFound As Boolean
Dim Sht As Worksheet
xName = InputBox("הכנס/י שם ספק לחיפוש בקובץ", "Sheet search")
For Each Sht In ThisWorkbook.Worksheets
If Sht.Name Like xName & "*" Then ' sheet name found
' do something
xFound = True ' raise flag
Exit For
End If
Next Sht
If xFound = False Then
MsgBox ("הספק " & xName & " לא נמצא")
End If
注意:尝试在VBA中编码时不要使用希伯来语字符,这只会给您带来悲伤(我15年前就停止了)。
如果要使用Instr
函数,请使用类似下面的代码:
If InStr(Sht.Name, xName) > 0 Then ' <-- Using Instr