通过下拉列表切换工作表

Switching sheets via a dropdown list

我是 VBA 的新手,我正在尝试创建一种通过主 'index' 页面上的下拉列表在工作簿中导航 sheet 的方法。由于工作簿中有多个 sheet,并且有多个人在使用,我希望下拉列表能够自动填充,以免需要搜索列表。然后我希望打开选定的 sheet(可能使用宏按钮,或者如果可以的话,甚至可以通过按回车键打开)。

到目前为止,我有以下填充下拉列表的宏(取自另一个站点):

Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
If ComboBox1.ListCount <> ThisWorkbook.Sheets.Count Then
    ComboBox1.Clear
    For Each xSheet In ThisWorkbook.Sheets
        ComboBox1.AddItem xSheet.Name
    Next xSheet
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
    End Sub

这非常适合我的下拉列表内容及其自动填充功能;但我正在努力包括实际转到所选 sheet 的最终操作。有关信息,我使用了 ComboBox (ActivX Control)。我在想这可能是创建一个宏按钮并在下拉选择中引用文本的情况?

如有任何帮助或建议,我们将不胜感激。

您可以像这样使用组合框中的值来切换选项卡。一旦我按下按钮,Sheet1 就会变为活动状态,而不是 Sheet2

这是供您 copy/paste 自己测试的代码:

Private Sub CommandButton1_Click()
Dim mySheet As Worksheet
For Each mySheet In ActiveWorkbook.Worksheets
    If mySheet.Name = ComboBox1 Then
        mySheet.Select
        Exit For
    End If
Next mySheet
End Sub

基本上,这将循环遍历所有工作表以查找组合框中的内容。如果有匹配项,则选择它。