Excel 如何在VBA中将列表框文本与工作表名称进行比较?

Excel 如何在VBA中将列表框文本与工作表名称进行比较?,excel,vba,userform,Excel,Vba,Userform,我正在尝试做一个用户表单,它允许在列表框中插入一个数字,以防这个数字与其中一个工作表名称匹配,从而选择这个工作表。如果没有匹配项,请在消息框中显示未找到该号码。 但是我在定义ListBox文本必须与工作表名称进行比较时遇到了一个问题。 它的外观如下所示: 代码如下: Private Sub CommandButton1_Click() Option Explicit Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets '

我正在尝试做一个用户表单,它允许在列表框中插入一个数字,以防这个数字与其中一个工作表名称匹配,从而选择这个工作表。如果没有匹配项,请在消息框中显示未找到该号码。 但是我在定义ListBox文本必须与工作表名称进行比较时遇到了一个问题。 它的外观如下所示:

代码如下:

Private Sub CommandButton1_Click()
Option Explicit
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
        'this line i could not manage
        If ws.Name Like "Tel*" Then
        Sheets("Tabella Riepilogativa").Select
        End If
        Else: MsgBox "Phone number was not found"
    Next
End Sub

Private Sub Label1_Click()

End Sub

Private Sub ListBox1_Click()

End Sub

有人能帮忙吗?

文件顶部的
选项Explicit

要查找名为“Tel{用户在文本框中输入的任何内容}”的工作表:


可能
如果StrComp(ws.name,textbox1,vbtextcompare)=0,那么
为什么要使用
列表框
进行用户输入?您能不能改用
文本框
?是的,用于用户输入。我想我可以用文本框代替,但我仍然不知道如何与表单名称进行比较谢谢!脚本运行得很好。唯一的问题是它总是说“找不到”,即使文本框和工作表名称相等。另一件事,是否也可以对数字或仅对文本执行相同的操作?如果用户输入123,如果您看到一个消息框,它将选择一个名为“tel123”的工作表,但它没有找到匹配项
Private Sub CommandButton1_Click()

Dim ws As Worksheet, wsFound As Worksheet, searchFor As String

searchFor = "TEL" & UCase$(Trim$(TextBox1.Text))

For Each ws In ThisWorkbook.Sheets
    If UCase$(ws.Name) = searchFor Then
        Set wsFound = ws
        Exit For
    End If
Next

If wsFound Is Nothing Then
    MsgBox "Not Found (I should probably be a label to save the user an unnecessary click)"
Else
    wsFound.Select
End If

End Sub