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

时间:2016-05-05 13:59:12

标签: excel vba excel-vba worksheet

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

我正在编写使用

的代码
Application.FileDialog(msoFileDialogFilePicker)

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

我希望工作流程为:

  1. 文件对话框打开 - >选择一个Excel文件>行
  2. 打开工作表对话框(如Excel'选择工作表"对话框) - >选择该Excel文件中的一个工作表>行
  3. 我已经通过了Application.Dialog(xl ...)的东西,但无法找到合适的选项。

    请帮忙!并谢谢。

1 个答案:

答案 0 :(得分: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