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