我使用以下代码跳转到工作表。它需要输入确切的名称才能找到。有没有办法让它通过键入部分工作表名称跳转到工作表?
例如,我有一个大型工作簿,其中包含按其ID和货币命名的工作表。如果我知道ID而不是货币,我希望能够跳转到表格。
我的代码:
Sub SelectSheet()
Dim i As Variant
Dim ws As Worksheet
i = Application.InputBox("Enter worksheet name", "Select sheet")
'Cancel was pressed
If i = False Or Trim(i) = "" Then Exit Sub
'Check if sheet exist
On Error Resume Next
Set ws = Sheets(i)
On Error GoTo 0
If ws Is Nothing Then
MsgBox "Worksheet " & i & " not found!"
Else
Sheets(i).Select
End If
End Sub
有什么想法吗?
答案 0 :(得分:1)
这将在每个工作表名称的开头进行部分名称匹配。根据您的需要进行相应调整。
它的工作原理是匹配每个工作表名称的第一个x
个字符数,其中x
的值由您输入的字符数决定。您可能需要处理大小写转换(例如,将输入转换为大写以消除区分大小写)。
Sub SelectSheet()
Dim Temp As Variant
Dim ws As Worksheet
Temp = Application.InputBox("Enter worksheet name", "Select sheet")
'Cancel was pressed
If Temp = False Or Trim(Temp) = "" Then Exit Sub
'Check if sheet exist
On Error Resume Next
For i = 1 To Sheets.Count
If Left(Sheets(i).Name, Len(Temp)) = Temp Then ' Match first letters
Set ws = Sheets(i) ' Found it
End If
Next
Set ws = Sheets(i)
On Error GoTo 0
If ws Is Nothing Then
MsgBox "Worksheet " & Temp & " not found!"
Else
ws.Select
End If
End Sub