VBA / Excel-2007
我想创建一个(可能很多).xlam文件,以保存跨项目可访问的通用模块。一路上我收到了许多错误,但是通过创建“米老鼠”场景,我将其归结为一个错误状态(如实际结果所示):-
我已经看到这里报告了一些与此相关的问题,这些问题最终还是没有得到答案或者解决方案还没有达到目标
作为此方法的前提,我能够将我的通用模块放入另一个.xlsm项目中,并通过使用对该项目的引用来成功执行该模块。但是,最好不要仅出于容纳通用模块的目的而创建工作簿
'Caller VBAProject(Caller.xlsm):
Public Sub Caller()
Dim i As Integer
i = 0
'*** Error in line below***
Application.Run "C:\Users\IT\AppData\Roaming\Microsoft\AddIns\Common.xlam!Test", i
End Sub
'Called Test(Common.xlam)-显然是另一个项目
Function Test(ByRef i As Integer) As Boolean
If i = 0 Then
Test = False
Else
Test = True
End If
End Function
运行时错误“ 1004”:
无法运行宏
'C:\ Users \ IT \ AppData \ Roaming \ Mirosoft \ AddIns \ Common.xlam!Test' 该宏可能在此工作簿中不可用,或者所有宏可能 被禁用。
信任中心
a)宏设置 -i)和ii)(在不同时间)
i) Disabled all macros with notification
ii) Enabled all macros
iii) set Trust access to the VBA project object model
b)加载项-默认保留,即未勾选任何选项
c)受信任位置-已添加以下内容 C:\ Users \ IT \ AppData \ Roaming \ Microsoft \ AddIns \
加载项
作为一个活动应用程序加载项
C:\Users\IT\AppData\Roaming\Microsoft\AddIns\Common.xlam
有人可以告诉我我可能错过的事情吗?
答案 0 :(得分:0)
因此,总结一下,到目前为止,我没有有一个直接的答案,那就是如何在调用.xlam文件中的宏时避免出现1004错误。但是,我确实有一个绰绰有余的替代方法,即将公用文件导入同一项目中的其他模块。我意识到的是,在撰写本文时,它不是在运行时导入的,也不是 Zac 所暗示的后期绑定。我不确定我是否太担心了(至少目前是这样)。