一次使用两个VBE

时间:2010-06-29 01:06:53

标签: vba ms-word ms-office vbe

我刚刚在工作中接管了一些非常可怕的传统vba。当我有空闲时间时,我基本上重组并在新模板中重写它。我偶尔会设法利用各种故障,并立即打开两个不同的VBE实例。我不知道我做了什么让这件事发生了,但它让我的生活变得更加容易,所以我想知道是否有其他人知道。我认为这与将Word作为新实例运行有关,但我无法在工作PC上更改我的文件类型设置。

编辑:我通常会复制并粘贴到Excel中并以这种方式执行,但这并不理想,因为我还在工作的其他部分使用了大量的Excel宏

2 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

尝试通过代码打开Word:

Dim ws As Object

Set ws = CreateObject("word.application")
ws.Visible = True

你应该得到第二个实例。