Макросы из другой книги перестали работать после обновления офиса

У меня есть рабочая книга Excel с макросами (master.xlsm), и к этим макросам можно получить доступ из других книг через настраиваемую панель инструментов в Excel. ранее, когда обычная книга открывается и получает доступ к одному из этих макросов на пользовательской панели инструментов,

  1. если master.xlsm еще не открыт, то он открывается в фоновом режиме и выполняет макрос в обычной книге
  2. если master.xlsm уже открыт, то выполнить макрос непосредственно в обычной книге.

теперь с недавним обновлением Office 365 метод (1) заблокирован. поэтому я должен вручную открыть master.xlsm для выполнения макросов.

теперь в (1) это показывает,

[не удается запустить макрос "C:\Main\master.xlsm'!macro1", возможно, он недоступен или все макросы могут быть отключены]

Пробовал на другом ПК с последней версией Windows 10 и последней версией Office 365. он работает, и встроенная версия Office 365 на рабочем компьютере - MSO (16.0.11328....), а неисправный компьютер - MSO (16.0.11727....) это может быть очевидной причиной, но обе версии Office 365 обновлены.

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

также обновление назад неисправный ПК также работал, поэтому все файлы и настройки идентичны.

мой вопрос изменил критерии безопасности excel vba? или как решить без понижения версии офисной сборки.

ниже изображение 1, когда master.xlsm не открыт, поэтому выдает ошибку изображение 2, когда master.xlsm открыт, поэтому он выполняет макрос и вставляет текст в book1.xlsx

когда мастер xlsm не открыт

когда мастер xlsm открыт

Прежде всего проверьте, запускаются ли макросы вообще. Добавьте тест Sub в этот файл, пусть он выдаст окно сообщения, например MsgBox "I run!", и запустите процедуру. Если вы не видите поле, значит проблема с безопасностью макросов. Если вы видите это поле, проблема связана с вашим файлом или кодом.

Pᴇʜ 12.06.2019 16:22

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

Mahesh Uddama 12.06.2019 16:35
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
2 513
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ну, я бы начал с проверки, работают ли "открытые" макросы в "master.xlsm" примерно так:


Thisworkbook_open


Это, вероятно, не решит вашу проблему, но может пролить свет на то, в чем проблема.

Также размещение здесь некоторого кода в master.xlsm поможет

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

Mahesh Uddama 12.06.2019 19:37

Ну, вы можете запустить макрос в master.xlsm только тогда, когда он открыт. Если он закрыт, вы не можете запустить макрос в нем, вам нужно сначала открыть его. Например, используйте Метод Workbooks.Open, чтобы открыть его первым.

Dim MasterWb As Workbook

On Error Resume Next 'test if master.xlsm is already open
Set MasterWb = Workbooks("master.xlsm")
On Error Goto 0

If MasterWb Is Nothing Then 'if it was closed open/run/close it
    Set MasterWb = Workbooks.Open("C:\Main\master.xlsm")
    Application.Run "master.xlsm!macro1"
    MasterWb.Close SaveChanges:=False
Else 'if it was already opened just run macro and don't close it (or you might loose changes that were already made)
    Application.Run "master.xlsm!macro1"
End If

нет, обычные рабочие книги не поддерживают макросы, поэтому я не могу размещать там коды vba. пользовательская панель инструментов пытается напрямую получить доступ к макросам. помните, что раньше он работал более 2 лет.

Mahesh Uddama 13.06.2019 10:28

Если ваш код запускается из пользовательской панели инструментов, вам следует подумать о том, чтобы поместить его в PERSONAL.XLSB, чтобы он работал: см. Скопируйте свои макросы в личную книгу макросов • Я предполагаю, что у вас была master.xlsm автоматическая загрузка при запуске Excel в вашей предыдущей установке, но вы не помните об этом.

Pᴇʜ 13.06.2019 10:36

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

Mahesh Uddama 13.06.2019 11:20

@MaheshUddama, тогда вам, вероятно, следует создать надстройку или использовать эта техника

Pᴇʜ 14.06.2019 09:38

в худшем случае я попробую, прямо сейчас я ожидаю найти исправление разницы, сделанной в недавнем обновлении, возможно, исключение безопасности, редактирование реестра или изменение политики. потому что он работал долгое время даже с офисом 365, начиная с офиса 2013.

Mahesh Uddama 14.06.2019 12:57
Ответ принят как подходящий

в конце концов, Microsoft признала, что это проблема в ежемесячном и ежемесячном (целевом) каналах Office 365, и они уже исправили ее в ежемесячном целевом канале и ждут исправления ежемесячного канала. очевидно, что эта проблема не затронула полугодовые и годовые каналы, потому что они приносят самые стабильные обновления из месячных каналов в полугодовые и годовые каналы. Я думаю, что лучше выбрать канал полугодовых или ежегодных обновлений, если у вас малый бизнес и вы не с нетерпением ждете каждого обновления сразу же каждый месяц.

Отвечать https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_win10-mso_o365b/macros-from-another-workbook-stopped-working-after/9779bd5f-e858-4213-9ea6-95597e867a07?messageId= 4d2e3ce7-350d-4bfd-82b2-f54c8654016e&page=1

Обзор каналов обновления https://docs.microsoft.com/en-us/deployoffice/overview-of-update-channels-for-office-365-proplus#visual-representation-of-the-update-channels-for-office-365- избыток

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