我在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
答案 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
结束功能