从MS Access 2010过程运行Excel Add In宏时遇到问题

时间:2014-02-14 16:47:52

标签: vba excel-vba ms-access-2010 excel

我在MS Access中使用VBA代码将查询导出为Excel工作簿。我有一个单独的过程,从MS Access打开工作簿并运行宏来格式化工作簿。宏存储在单独的Excel加载项(.xlam)工作簿中。

我的问题:我收到1004无法运行宏错误,因为“无法找到宏或已禁用宏”。我尝试在Excel信任中心选项中启用所有宏,然后单独打开加载项工作簿并重新运行该过程。我收到同样的错误。

我在网上搜索了一个答案,但我没有找到任何成功运行存储在MS Access过程中单独的加载项工作簿中的宏的人。有人关心尝试和帮助吗?

这是我的MS Access程序,它给我带来了问题:

 Private Sub RunExcelTrackerMacro(strFileName As String)
    Dim xl As Object
    ' Create excel app.
    Set xl = CreateObject("Excel.Application")

    ' Open workbook to be formatted via a macro.
    xl.Workbooks.Open (strFileName)
    xl.Visible = False

    ' Run the macro, stored in a separate add-in (.xlam) workbook.
    ' This procedure fails to run the public Call_FormatTracker macro, which
    ' is stored in an Add-In in a module called "MacroCalls." 
    xl.Run "MacroCalls.Call_FormatTracker"

    ' Save and close the workbook.
    xl.ActiveWorkbook.Close (True)
    ' Close excel app.
    xl.Quit
    Set xl = Nothing
End Sub

2 个答案:

答案 0 :(得分:0)

如何将xl.Run行更改为xl.Run "Sales.xlam!Orders"

之类的内容

不确定你的xlam是什么,但只是改变以适应。

答案 1 :(得分:0)

我在添加中运行宏时遇到了类似的问题。虽然我直接打开Excel时可以使用插件,但是从Access调用Excel时却没有。

创建Excel对象后,添加以下行。

Call ReloadXLAddins(xl)


Function ReloadXLAddins(oExcel) ' As Boolean

  '  Dim CurrAddin As Excel.AddIn

For Each CurrAddin In oExcel.AddIns
    If CurrAddin.Installed Then
        CurrAddin.Installed = False
        CurrAddin.Installed = True
    End If
Next CurrAddin

结束功能