我刚刚在工作中接管了一些非常可怕的遗留 vba 的维护工作。当我有空闲时间时,我基本上会在新模板中重组和重写它。时不时地,我设法利用各种故障并同时打开两个不同的 VBE 实例。我不确切知道我做了什么来实现这一点,但这让我的生活更轻松,所以我想知道是否有其他人知道。我认为这与将 Word 作为新实例运行有关,但我无法更改工作 PC 上的文件类型设置。
编辑:我通常复制并粘贴到 Excel 中并这样做,但这并不理想,因为我在工作的其他部分也使用了很多 Excel 宏
您可以使用Application.Run
在另一个 VBA 主机中执行代码,并且可以跨VBE 单步执行代码。
Sub CallExcelUDFFromNonExcelHost()
'Get an existing instance of Excel
Dim appXL As Excel.Application
Set appXL = GetObject(, "Excel.Application")
'Get the already opened Excel workbook
Dim wbk As Excel.Workbook
Set wbk = appXL.Workbooks("MyExcelFunctions.xlsm")
'Call the function in the Excel workbook
Dim result
result = appXL.Run(wbk.VBProject.Name & ".MyFunction", "Some Argument")
End Sub
尝试通过代码打开 Word:
Dim ws As Object
Set ws = CreateObject("word.application")
ws.Visible = True
你应该得到第二个实例。