首页 > 解决方案 > 通过下拉列表切换工作表

问题描述

我对 VBA 很陌生,并且正在尝试创建一种通过主“索引”页面上的下拉列表在工作簿中导航工作表的方法。由于工作簿中有多个工作表,并且多人使用,我希望下拉列表自动填充,以节省需要搜索列表。然后,我希望打开选定的工作表(可能使用宏按钮,或者如果可以的话,甚至可以按 Enter 键)。

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

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

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

任何帮助或建议将不胜感激。

标签: excelvbacomboboxworksheet

解决方案


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

在此处输入图像描述

这是您自己复制/粘贴和测试的代码:

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

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


推荐阅读