Excel VBA: 如何访问和控制 "Sheet Select" 对话框?

Excel VBA: how to access and control the "Sheet Select" dialog?

当我的 VBA 脚本无法确定要使用哪个工作表时,它会打开一个 Excel 对话框:"Select Sheet"。这是太棒了!我如何以编程方式控制和使用 "Sheet Select" 对话框?

我正在编写使用

的代码
Application.FileDialog(msoFileDialogFilePicker)

..设置一个变量=一个选定的文件名,但我也在尝试为该文件中的某个工作表设置一个变量。无需打开文件。

我希望工作流程是:

  1. 文件对话框打开 -> Select 一个 Excel 文件 > 确定
  2. 工作表对话框打开(类似于 Excel 的 "Select Sheet" 对话框)-> Select 该 Excel 文件中的工作表之一 > 确定

我经历了 Application.Dialog(xl...) 的事情,但找不到正确的选择。

请帮忙!谢谢。

你可以试试这个(改编自 Tom Curtis 的 here

Option Explicit

Dim mySht As Worksheet

Sub SelectSheet()

Dim cmdBar As CommandBar
Dim cmdBarBtn As CommandBarButton
Dim sht As Worksheet

RegDel

Set cmdBar = Application.CommandBars.Add("Register", msoBarPopup)
For Each sht In ThisWorkbook.Worksheets
    Set cmdBarBtn = cmdBar.Controls.Add
    cmdBarBtn.Caption = sht.Name
    cmdBarBtn.Style = msoButtonCaption
    cmdBarBtn.OnAction = "SelectThatSheet"
Next sht
cmdBar.ShowPopup

MsgBox "you selected sheet '" & mySht.Name & "'"

End Sub

Sub SelectThatSheet()
Set mySht = Worksheets(Application.Caller(1))
RegDel
End Sub

Sub RegDel()
On Error Resume Next
Application.CommandBars("Register").Delete
On Error GoTo 0
End Sub