通过下拉列表切换工作表
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
基本上,这将循环遍历所有工作表以查找组合框中的内容。如果有匹配项,则选择它。
我是 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
基本上,这将循环遍历所有工作表以查找组合框中的内容。如果有匹配项,则选择它。