
Я понимаю, что это может быть немного странно.проблема XY, поэтому начну с самого начала.
Последнее обновление MS Office на моем корпоративном рабочем месте, к сожалению, сломало мое приложение Excel. Оно в значительной степени опирается на VBA, распределенный по нескольким файлам. Некоторые из них являются файлами .xlam, которые были разделены просто для удобства, чтобы пользователю не приходилось загружать ВЕСЬ код за один раз, а можно загружать файлы по отдельности в соответствии с тем, какой раздел приложения он хочет использовать.
Ошибка гласит:
«Excel не может открыть файл Portal.xlsm, так как формат или расширение файла недопустимы. Убедитесь, что файл не поврежден и что расширение соответствует формату файла»
Я точно знаю, что с файлом все в порядке. Он не поврежден, потому что мне удалось отправить файл себе домой по электронной почте. Он открылся с помощью моего домашнего Excel, и я смог точно определить, какая строка выдавала ошибку. Когда (некритическая) строка была удалена, файл открылся правильно в моей корпоративной среде.
Ради интереса, оскорбительной строкой была следующая:
'Required functions to test the state of the shift key (for developer to pause Launcher)
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Я не знаю точно, почему эта функция GetKeyState могла привести к тому, что весь файл Excel не открылся, поэтому, если у кого-то есть идеи, я бы хотел их услышать (я знаю, что мне следует повторить этот пост и на StackOverflow).
Однако, хотя этот основной файл теперь работал, возникла вторая проблема. Файлы XLAM не удалось загрузить. Еще более загадочно, что когда я попытался открыть их на моем ДОМАШНЕМ компьютере, они не были распознаны. Дома у меня Excel 2019 (версия 2110). На работе у меня Excel для MS Office 365.
Так что теперь я думаю, что если я смогу как-то открыть файлы xlam, я смогу извлечь код и скопировать/вставить модули в основной файл. Как это было до того, как я решил разделить их. Единственная проблема в том, что после загадочного обновления безопасности я не могу открыть эти файлы xlam.
Это подводит меня к вопросу: если я могу использовать старую версию Excel, я могу открыть эти файлы xlam — исключительно для того, чтобы просмотреть модули VBA, — а затем скопировать их, как описано здесь.
Может ли кто-нибудь подсказать место, где я могу получить доступ к старым версиям MS Excel? Желательно Portable, потому что я бы предпочел избежать хлопот с переустановкой. Спасибо.
ПРИМЕЧАНИЕ Я работаю в очень большом государственном департаменте и не имею никаких прав администратора в своей корпоративной сети. Никаких шансов изменить там какую-либо конфигурацию реестра!
решение1
Развертывание с помощью Центра администрирования Office 365 предназначено только для веб-надстроек нового поколения, поэтому ваша надстройка .xlam
больше не может быть развернута.
Я не знаю о портативной версии Office, но я знаю, откуда можно скачать старые версии Office. Их можно установить внутри виртуальной машины, чтобы не нарушать рабочую среду.
Вы можете загрузить несколько версий Office с сайта TechBench от WZT:
Образы скачиваются с сайта Microsoft (даже если официально этих версий там нет). Серийных номеров на этом сайте не найти (это не хакерский сайт), но пробного периода для ваших целей будет достаточно.