Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Game от 09 августа 2019, 10:30

Название: Excel VBA Макросы: Ошибка при работе из экселя в ворде: Compile error: Variable not defined.
Отправлено: Game от 09 августа 2019, 10:30
В экселе запускаю макрос, который работает с ворд-файлом.
Происходит такая ошибка:
Compile error: Variable not defined.

И в этой строке
rng.Collapse Direction:=wdCollapseEnd

выделяется слово:
wdCollapseEnd

Как исправить ошибку?
Название: Re: Excel VBA Макросы: Ошибка при работе из экселя в ворде: Compile error: Variable not defined.
Отправлено: Администратор от 09 августа 2019, 10:34
Нужно заменить константу "wdCollapseEnd" на значение.
Экселю не известны эти константы. Константа wdCollapseEnd - это ноль.
Значения констант можно искать через гугл, просто ища в гугле название константы.

После замены код будет выглядеть так:
rng.Collapse Direction:=0
Название: Re: Excel VBA Макросы: Ошибка при работе из экселя в ворде: Compile error: Variable not defined.
Отправлено: Game от 09 августа 2019, 11:00
Нашел проще решение: подключил библиотеку: Tools - References... - microsoft word 14.0 object library.
Название: Re: Excel VBA Макросы: Ошибка при работе из экселя в ворде: Compile error: Variable not defined.
Отправлено: Администратор от 09 августа 2019, 11:02
У этого способа есть недостаток, при переходе на новую версию, код перестанет работать, нужно будет подключить новую библиотеку.
И на другом компьютере не будет работать, если на нём другая версия.
Название: Re: Excel VBA Макросы: Ошибка при работе из экселя в ворде: Compile error: Variable not defined.
Отправлено: Game от 09 августа 2019, 12:04
все заработало, спасибо