Excel 保留“宏”对话框

Excel 保留“宏”对话框,excel,vba,Excel,Vba,如果要从工作表运行一组宏,请触摸Alt+F8并选择第一个宏: 宏将运行,但对话框将消失。 如果我想按顺序运行几个宏,我需要继续触摸Alt+F8 是否有任何方法可以配置VBE,使其在宏运行时保持对话框打开???作为一个脏的解决方案,只需在宏末尾添加SendKeys“%{f8}”即可再次调用宏窗口;) 编辑: 现在明白了: Application.Dialogs(xlDialogRun).Show 编辑2 您还可以创建一个带有列表框的userform,该列表框显示所有重要的sub。通过这种方式,

如果要从工作表运行一组宏,请触摸Alt+F8并选择第一个宏:


宏将运行,但对话框将消失。

如果我想按顺序运行几个宏,我需要继续触摸Alt+F8


是否有任何方法可以配置VBE,使其在宏运行时保持对话框打开???

作为一个脏的解决方案,只需在宏末尾添加
SendKeys“%{f8}”
即可再次调用宏窗口;)

编辑

现在明白了:

Application.Dialogs(xlDialogRun).Show
编辑2

您还可以创建一个带有列表框的userform,该列表框显示所有重要的sub。通过这种方式,您还可以排除您不需要或根本不想出于任何原因出现的SUB。

此外,您还可以通过这种方式运行通常无法运行的SUB(缺少依赖项/参数)。

作为一种肮脏的解决方案,只需在宏末尾添加
SendKeys“%{f8}”
即可再次调用宏窗口;)

编辑

现在明白了:

Application.Dialogs(xlDialogRun).Show
编辑2

您还可以创建一个带有列表框的userform,该列表框显示所有重要的sub。通过这种方式,您还可以排除您不需要或根本不想出于任何原因出现的SUB。

您也可以通过这种方式运行通常无法运行的SUB(缺少依赖项/参数)。

为什么不创建一个宏来按顺序运行其他SUB

Sub RunAll()

ColorMeYellow
FormatDownload
HyperKiller
NewCheck
ShapeKiller
SheetCounter

End Sub

或者使用ParamArray增加灵活性:

Sub RunAll(ParamArray runSequence() As Variant)

    For Each arg In runSequence
        Application.Run CStr(arg)
    Next

End Sub

类似于
运行所有的“colormeyllow”、“FormatDownload”、“SheetCounter”

为什么不创建一个宏来按顺序运行其他宏

Sub RunAll()

ColorMeYellow
FormatDownload
HyperKiller
NewCheck
ShapeKiller
SheetCounter

End Sub

或者使用ParamArray增加灵活性:

Sub RunAll(ParamArray runSequence() As Variant)

    For Each arg In runSequence
        Application.Run CStr(arg)
    Next

End Sub

RunAll“colormeyllow”、“FormatDownload”、“SheetCounter”一样使用,只是好奇为什么要通过这个方法执行多个宏?如果创建要运行的这些宏的下拉列表或菜单,不是更容易吗?只是好奇为什么要通过此方法执行多个宏?如果你创建一个要运行的宏下拉列表或一个菜单,不是会更容易吗?这是一个很好的建议,但我被锁定在一个固定的序列中……。我希望菜单的灵活性,而不需要额外的启动开销。这是一个很好的建议,但是我被锁定在一个固定的序列中…………我想要菜单的灵活性,而不需要额外的打开开销。@Gary的学生得到了一个不脏的解决方案;我喜欢第一个解决方案。如果我运行的宏只包含
应用程序.Dialogs(xlDialogRun).Show
,则会出现对话框,我选择一个,对话框消失,我选择的宏运行两次。。。。。。。。。。。。。。很奇怪……哦,哇。。。我现在将运行一些测试。。。听起来很“时髦”:D@Gary学生得到了不脏的解决方案;我喜欢第一个解决方案。如果我运行的宏只包含
应用程序.Dialogs(xlDialogRun).Show
,则会出现对话框,我选择一个,对话框消失,我选择的宏运行两次。。。。。。。。。。。。。。很奇怪……哦,哇。。。我现在将运行一些测试。。。听起来很“时髦”:D