Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Старый excel макрос не работает в Office16 (http://forum.oszone.net/showthread.php?t=330044)

For_Sites@twitter 25-09-2017 13:46 2766772

Старый excel макрос не работает в Office16
 
Установили новый офис и как оказалось, экселевский макрос который успешно работал в 2010 офисе, не работает в 2016.
При запуске, ругается на устаревший синтаксис vba кода. Переделывать огромный макрос нет ни сил, ни желания.

Пробовал установить библиотеки MS Excel 14 Object library, не получилось (установить их). Win 10, 64 bit, Office 2016


Прошу помощи.

Iska 25-09-2017 14:00 2766779

Цитата:

Цитата For_Sites@twitter
экселевский макрос который успешно работал в 2007 офисе »

Приведите код макроса. Приложите исходные данные, на которых он работал (Рабочую книгу и т.п.).

Цитата:

Цитата For_Sites@twitter
При запуске, ругается на устаревший синтаксис vba кода. »

Как именно ругается?

Цитата:

Цитата For_Sites@twitter
Переделывать огромный макрос нет ни сил, ни желания. »

А если придётся?

For_Sites@twitter 25-09-2017 14:49 2766794

Вложений: 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-м офисе. (ну или если есть автокомпилятор, то готов засунуть код туда)

a_axe 25-09-2017 15:20 2766801

Цитата:

Цитата For_Sites@twitter
Я так понимаю что некие методы в офисе 2016 то ли устарели, то ли отключены (по разным причинам) и поэтому мне придется адаптировать код под новые библиотеки. Но мне проще подцепить старую бибилиотеку и работать с ней, но в 16-м офисе. (ну или если есть автокомпилятор, то готов засунуть код туда) »

В 2010 ровно так же по умолчанию библиотеки отключены, и выдаются ровно те же ошибки.

Попробуйте в меню VBA редактора tools→references подключить Microsoft XML, v.6.0 , у меня на Windows 7 лежало в "C:\Windows\System32\msxml6.dll".
Судя по поиску - вам нужна эта библиотека, у меня по крайней мере на ваш кусочек кода теперь не ругается.

Iska 25-09-2017 15:28 2766802

For_Sites@twitter, вижу три варианта: отсутствует библиотека и/или её регистрация в системе, в коде модуля отсутствует ссылка на библиотеку, разрядность библиотеки не соответствует разрядности приложения (вот в этом я не уверен, может быть сие и не столь критично).

For_Sites@twitter 25-09-2017 16:06 2766812

Вложений: 2
a_axe,
эта бибилиотека включена у меня. скрины приложил

Iska,
перерегистрация вышеупомянутой dll не помогла. ошибка все та же. прошлая система была тоже 64 разрядная но office14, вес работало. + и без ссылки на библиотеку в коде модуля.

Iska 25-09-2017 16:31 2766817

Цитата:

Цитата For_Sites@twitter
+ и без ссылки на библиотеку в коде модуля. »

Без ссылки раннее связывание:
Код:

Dim XMLHttp As New MSXML2.XMLHttp
работать в принципе не может. Позднее:
Цитата:

Цитата For_Sites@twitter
меняю вышеуказанную строку на
Dim XMLHttp As Object
Set XMLHttp = CreateObject("MSXML2.XMLHttp") »

может. Но опять же — Вы не можете тут же ниже пытаться пользовать всё то же раннее связывание из той же библиотеки в виде «…As New DomDocument».

Лучше просто добавьте ссылку на библиотеку в проект VBA.

Methodichka 26-09-2017 06:44 2766949

Думаю, какие-то проблемы с установкой или отстуствием компонентов. Можно попробовать .NET Framework переустановить, MSXML в него тоже входит.

For_Sites@twitter 26-09-2017 11:54 2767006

сегодня завтра проверю, отпишусь обязательно.

готово:
1. скопировал из рабочей 32 битной системы msxml6.dll
2. зарегал через regsrv32
3. зареференсил в макросе

заработало. Всем спасибо за советы


Время: 07:56.

Время: 07:56.
© OSzone.net 2001-