首页 文章

Excel VBA:如何访问和控制“工作表选择”对话框?

提问于
浏览
1

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

我正在编写一个使用的代码

Application.FileDialog(msoFileDialogFilePicker)

..设置变量=选择的文件名,但我也试图将变量设置为该文件中的某个工作表 . 所有没有打开文件 .

我希望工作流程是:

  • 文件对话框打开 - >选择Excel文件>确定

  • 工作表对话框打开(如Excel的"Select Sheet"对话框) - >在该Excel文件中选择一个工作表>确定

我一直在通过Application.Dialog(xl ...)的东西,但找不到合适的选项 .

请帮忙!并谢谢 .

1 回答

  • 2

    你可以试试这个(改编自Tom Urtis的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
    

相关问题