由于禁用了宏,因此无法在xlam文件中运行通用模块

时间:2019-02-01 13:31:25

标签: excel vba excel-2007 add-in ms-error-1004

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' 该宏可能在此工作簿中不可用,或者所有宏可能 被禁用。

采取的步骤(在Excel选项中)

  1. 信任中心

    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 \

  2. 加载项

    作为一个活动应用程序加载项

    C:\Users\IT\AppData\Roaming\Microsoft\AddIns\Common.xlam
    

有人可以告诉我我可能错过的事情吗?

1 个答案:

答案 0 :(得分:0)

因此,总结一下,到目前为止,我没有有一个直接的答案,那就是如何在调用.xlam文件中的宏时避免出现1004错误。但是,我确实有一个绰绰有余的替代方法,即将公用文件导入同一项目中的其他模块。我意识到的是,在撰写本文时,它不是在运行时导入的,也不是 Zac 所暗示的后期绑定。我不确定我是否太担心了(至少目前是这样)。