0

我在 Outlook 中有一个宏,我让它打开一个保存在我桌面上的 Excel 文件。打开文件后,我想运行一个我用 excel 编写的宏,但我的 excel 宏都不可用。每当我以任何其他方式打开 excel 时,这些宏都可用,并且当我通过 Outlook vba 打开 excel 时启用宏。我的问题是,当我通过 Outlook 宏打开 Excel 时,如何使这些宏可用?请在下面参考我的代码。

'Pre:None
'Post:Excel will have been opened, and the macro "CreatePowerPoint()"
'     will have been run on the excel document
Sub Gimba()
    Dim xlApp As Object, xlWkb As Object
    'open excel
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True ' can be False if you do not wont see reaction,
                     ' byt make sure is not fail
    'Do not show any alerts
    xlApp.DisplayAlerts = False

    'open excel document
    Set xlWkb = xlApp.Workbooks.Open(file path goes here)

    'call macro on excel document
    Call xlApp.Run("CreatePowerPoint")
End Sub
4

1 回答 1

4

我假设您通常可用的宏存储在您的 personal.xls 工作簿中?如果是这样,那么您只需要在尝试启动 CreatePowerPoint 宏之前加载它。

尝试类似(取决于您的个人工作簿的存储位置):

xlApp.Workbooks.Open ("C:\Documents and Settings\YourUserNameHere\Application Data\Microsoft\Excel\XLSTART\personal.xlsb")

顺便说一句,如果您使用早期绑定,您可能会发现编写 VBA 代码更容易。为此,您需要添加对 Excel 对象模型的引用,然后您可以使用 Set xlApp = new Excel.Application,而不是使用 CreateObject。这样您就可以获得所有不错的 Intellitype 帮助。

于 2013-05-09T14:14:56.250 回答