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