Невозможно запустить общий модуль в xlam-файле, так как макрос отключен - PullRequest
0 голосов
/ 01 февраля 2019

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 голосов
/ 08 февраля 2019

Итак, просто подведем итог: у меня нет прямого ответа на мой вопрос, а именно, как избежать ошибки 1004 при вызове макроса в файле .xlam.Однако у меня есть более чем адекватная альтернатива - импортировать общий файл в другой модуль в рамках одного проекта.Я понимаю, что когда я пишу это, это не импорт во время выполнения или поздняя привязка, как подразумевается Zac .Я не уверен, что я слишком волнуюсь, хотя (по крайней мере, на данный момент).

...