Почему макрос из другой рабочей книги будет недоступен после разрешения макроса?

У меня есть файл.xlsb, который я запускаю на другом компьютере после определения переменной paths в зависимости от ее текущего местоположения. Я добавил проект VBA другого файла xlsm в файл.xlsb. И я пытаюсь запустить макрос из модуля 2 файла.xlsb с одной из следующих строк в следующем коде:

Dim path As String
path = Application.ActiveWorkbook.path
path = path & "\"

Workbooks("2cDataSet.xlsm").Activate
'MsgBox (path & "2cDataSet.xlsm!publicdatahandler")
'Application.Run (path & "2cDataSet.xlsm!publicDataHandler")
'Application.Run (path & "'2cDataSet.xlsm'!publicDataHandler")
'Application.Run (path & "2cDataSet.xlsm!Module2.publicDataHandler")
'Application.Run (path & "'2cDataSet.xlsm'!Module2.publicDataHandler")

'Application.Run ("2cDataSet.xlsm!publicDataHandler")
'Application.Run ("'2cDataSet.xlsm'!publicDataHandler")
'Application.Run ("2cDataSet.xlsm!Module2.publicDataHandler")
'Application.Run ("'2cDataSet.xlsm'!Module2.publicDataHandler")

'Application.Run "2cDataSet.xlsm!publicDataHandler"
'Application.Run "'2cDataSet.xlsm'!publicDataHandler"
'Application.Run "2cDataSet.xlsm!Module2.publicDataHandler"
'Application.Run "'2cDataSet.xlsm'!Module2.publicDataHandler"

'Application.Run path & "2cDataSet.xlsm!publicDataHandler"
'Application.Run path & "'2cDataSet.xlsm'!publicDataHandler"
'Application.Run path & "2cDataSet.xlsm!Module2.publicDataHandler"
'Application.Run path & "'2cDataSet.xlsm'!Module2.publicDataHandler"

'Run macro:="2cDataSet.xlsm!Module2.publicdatahandler"
'Run macro:="2cDataSet.xlsm!publicdatahandler"

Кажется, это та же проблема, что и здесь, за исключением того, что я ожидаю, что проблема в этом случае будет вызвана слиянием двух разных файлов Excel, а не неактивностью макросов:

Невозможно запустить макрос... макрос может быть недоступен в этой книге

Потому что, как и предполагалось, я вручную включил макросы и параметры безопасности объектов с помощью:

  1. Нажмите кнопку Microsoft Office, а затем нажмите Параметры Excel.
  2. Нажмите Трастовый центр.
  3. Нажмите Настройки центра управления безопасностью.
  4. Нажмите Настройки макроса.
  5. Нажмите, чтобы установить флажок Доверительный доступ к объектной модели проекта VBA.
  6. Нажмите кнопку ОК, чтобы закрыть диалоговое окно "Параметры Excel".
  7. Закройте и снова откройте Excel.

Я также нажал кнопку "Включить макросы над этим флажком объектной модели".

Сначала я попытался вручную открыть файл 2cDataSet.xlsm, а затем вручную включить макросы при появлении соответствующего запроса, а затем открыть родительский файл.xlsb, и наоборот (где.xlsm автоматически открывается без запроса включения макросов после включения макросов для.xlsb)

И я думаю, что я попробовал правильный синтаксис в любом из опробованных вариантов. * К настоящему времени я также знаю, что сингл 'используется только в том случае, если имя содержит пробелы.

Я не удалил макрос и воссоздал его.

Я проверил, не был ли "явный параметр" написан как "явный вариант", но не был написан вообще

Саб является публичным.

Офис, в котором я написал это, был в 2016 году, версия на другом компьютере - 2013, но я получил ту же ошибку в офисе 2016 года, но по некоторым, мне неизвестной причине, иногда после переключения вызова под синтаксиса или повторного вызова. открыв файл excel, ошибка больше не возникает или не постоянно.

Любые предложения о том, почему Excel дает следующую ошибку:

не удается запустить макрос макрос может быть недоступен в этой книге или все макросы могут быть отключены

после саб называется?

Ps. Это для распределенных автоматических вычислений, поэтому я не смогу редактировать настройки ПК (или Excel), а всплывающие окна не являются:)

Проблема заключалась в том, что после слияния проектов VBA Excel сохранил ссылку на файл.xlsm в старой папке, даже если родительский файл.xlsb был скопирован и перемещен по другому пути.

Решение в настоящее время проверяется следующим образом: перемещение исходного файла в папку нового родительского файла и совместное использование всей этой папки с включенным фактическим.xlsm для запуска на другом компьютере.

1 ответ

Я добавил проект VBA другого файла xlsm в файл.xlsb.

Вы должны открыть *.xlsm следующим образом:

Sub openFile_RunMacro()

     Workbooks.Open "File2.xlsm" 'if File2.xlsm is in the same path as File1.xslb

     'otherwise » Workbooks.Open path & "File2.xlsm" «

     Application.Run ("File2.xlsm!Test")

End Sub

Если сообщение об активации макросов вас раздражает, попробуйте установить используемый путь в качестве надежного расположения.

редактировать

Я пытаюсь запустить макрос из модуля 2 файла .xlsb с одной из следующих строк в следующем коде

Итак, вы пытаетесь запустить код из файла.xlsb? Затем вы должны изменить имя файла в вашем коде с .xlsm на .xlsb.

Надежные местоположения

Другие вопросы по тегам