![]() |
Старый excel макрос не работает в Office16
Установили новый офис и как оказалось, экселевский макрос который успешно работал в 2010 офисе, не работает в 2016.
При запуске, ругается на устаревший синтаксис vba кода. Переделывать огромный макрос нет ни сил, ни желания. Пробовал установить библиотеки MS Excel 14 Object library, не получилось (установить их). Win 10, 64 bit, Office 2016 Прошу помощи. |
Цитата:
Цитата:
Цитата:
|
Вложений: 2
выдает ошибку компиляции:
Error 'Compile Error: User-defined type not defined' (см первый скрин) и подсвечивает Dim XMLHttp As New MSXML2.XMLHttp меняю вышеуказанную строку на Dim XMLHttp As Object Set XMLHttp = CreateObject("MSXML2.XMLHttp") то уже ругается на следующую строку (см второй скрин) ну и т.д. Я так понимаю что некие методы в офисе 2016 то ли устарели, то ли отключены (по разным причинам) и поэтому мне придется адаптировать код под новые библиотеки. Но мне проще подцепить старую бибилиотеку и работать с ней, но в 16-м офисе. (ну или если есть автокомпилятор, то готов засунуть код туда) |
Цитата:
Попробуйте в меню VBA редактора tools→references подключить Microsoft XML, v.6.0 , у меня на Windows 7 лежало в "C:\Windows\System32\msxml6.dll". Судя по поиску - вам нужна эта библиотека, у меня по крайней мере на ваш кусочек кода теперь не ругается. |
For_Sites@twitter, вижу три варианта: отсутствует библиотека и/или её регистрация в системе, в коде модуля отсутствует ссылка на библиотеку, разрядность библиотеки не соответствует разрядности приложения (вот в этом я не уверен, может быть сие и не столь критично).
|
Вложений: 2
a_axe,
эта бибилиотека включена у меня. скрины приложил Iska, перерегистрация вышеупомянутой dll не помогла. ошибка все та же. прошлая система была тоже 64 разрядная но office14, вес работало. + и без ссылки на библиотеку в коде модуля. |
Цитата:
Код:
Dim XMLHttp As New MSXML2.XMLHttp Цитата:
Лучше просто добавьте ссылку на библиотеку в проект VBA. |
Думаю, какие-то проблемы с установкой или отстуствием компонентов. Можно попробовать .NET Framework переустановить, MSXML в него тоже входит.
|
сегодня завтра проверю, отпишусь обязательно.
готово: 1. скопировал из рабочей 32 битной системы msxml6.dll 2. зарегал через regsrv32 3. зареференсил в макросе заработало. Всем спасибо за советы |
Время: 07:56. |
Время: 07:56.
© OSzone.net 2001-