2016-05-29 1 views
0

У меня есть файл .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" 

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

Cannot run the macro... the macro may not be available in this workbook

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

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

я нажал «включить кнопки макрокоманд выше этого objectmodel флажка.

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

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

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

Я проверил ли «вариант явно» не было написано как «варианты явными», но это не было написано на всех

саб общественности.

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

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

cannot run the macro the macro may not be available in this workbook or all macros may be disabled

после подразделов называются?

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

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

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

+0

_ «Я добавил проект макросов из другого XLSM» _ но «XLSM» является расширение для «простых» Excel файлов т.е. без каких-либо модулей VBA в нем. Вы уверены, что 'acDataSet.xlsm' - это правильное название рабочей книги для добавления в качестве ссылки на проект VBA? – user3598756

+0

@ user3598756 - ** xlsx ** - это то, что я называю голым файлом :) ** xlsm ** - ** m ** для макросов;) – Irithyll

+0

@Irithyll right, я ошибся между xlsm-xlsb и xlsx- XLSM. – user3598756

ответ

0

I added the VBA Project of a different xlsm file to the .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 

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

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

I'm trying to run a macro from Module 2 of the .xlsb file with either one of the following lines in the following code

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

Trusted Locations

+0

Я не знаю, что вы имели в виду, указав путь в качестве надежного местоположения, я полагаю, что это pc -rather, чем настройка excel. Я пытаюсь запустить код из xlsb-файла, но не проблема, что другой объединенный проект vba был из файла .xlsm. Спасибо за ваши предложения, хотя :) –

+0

@MaximilianbrutusIII - Я добавляю фотографию к своему ответу -> доверенные местоположения. Это опция Excel File -> Options -> Trust Center -> Trusted Locations :) – Irithyll

+0

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

Смежные вопросы