Файл поврежден после создания второго документа на основе шаблона с макросом - PullRequest
0 голосов
/ 03 июня 2019

У меня есть много шаблонов Excel, содержащих код VBA. Некоторые из них создают новые документы на основе других шаблонов с кодом VBA. Все они работали хорошо до прошлой пятницы, но сегодня я получил неприятный сюрприз: создание первого документа на основе шаблона с макросом работает хорошо, но создание второго приводит к повреждению кода.

Мне удалось воспроизвести проблему с двумя очень маленькими шаблонами, созданными с нуля:

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

На этом этапе в редакторе VBA видно, что проект VBA для второго документа поврежден. Признаки повреждения - неправильные значки в модулях Wrokbook и Worksheet в проводнике проекта и сообщение о катастрофическом сбое при попытке компиляции.

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

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

EDIT

Если вы не хотите загружать файлы (я понимаю, благодаря комментарию @Mathieu Guindon), вы можете создать их просто:

  1. создать новый файл Excel
  2. добавить модуль с простым сабвуфером, который показывает окно сообщения
  3. сохранить как шаблон с макросом
  4. повторить со вторым файлом

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

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Excel 2019 MSO (16.0.11629.20210) 32-разрядный.

=== Протестировано: последовательность открытия и типы файлов ===

• FAIL - открыть шаблон Excel, содержащий VBA, а затем еще один, содержащий VBA.

• OK - откройте шаблон Excel, содержащий VBA, затем шаблон Excel без кода в каком-либо модуле.

• OK - откройте шаблон Excel, который содержит VBA, затем XLSB (двоичный файл Excel), созданный путем сохранения любой из предыдущих книг, содержащих код.

=== Протестировано: немедленное окно редактора VBA ===

• FAIL - в редакторе VBA откройте модуль кода из второй или любой последующей книги, в которой есть VBA, а затем выполните команду в окне Immediate.

• OK - в VBA Editor откройте модуль кода из первой книги, а затем выполните команду в окне «Немедленно».

=== Не удалось найти ни одной статьи об этом. ===

Не указан в https://support.office.com/en-us/article/fixes-or-workarounds-for-recent-issues-in-excel-for-windows-49d932ce-0240-49cf-94df-1587d9d97093, но это определенно проблема Excel:

Невозможно открыть более одной книги с поддержкой макросов и запустить макросы, если только 2-я и все последующие книги макросов не являются .XLSB.

Даже без надстроек.

Симптомы:

• В Excel настроено разрешение макросов, но макросы не запускаются.

• Excel настроен для запроса макросов, но не.

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

0 голосов
/ 06 июня 2019

Microsoft подтвердила, что сборка 1905 повреждена и повреждает второй документ Excel, созданный из шаблона с макросами.

Они прислали мне (длинный) список шагов для удаления Office 365, запуска сценария для очистки некоторого кэша, создания новой конфигурации и переустановки с указанием полугодового канала для обновлений и предотвращения установки 1905 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...