VBA Late Binding – для пользовательских форм на основе пользовательских компьютеров, на которых нет ссылок на Word

У меня есть пользовательский формат excel / рабочий лист, который открывает документ / шаблон Word и сохраняет этот документ Word в виде PDF с определенным именем файла в той же папке.

В моих ссылках на Excel у меня есть библиотека объектов Word. Моя пользовательская форма будет использоваться на других компьютерах пользователей, у которых не будут включены эти ссылки (и это будет слишком сложно для всех пользователей).

Я понимаю, что код, который у меня есть, «раннее связывание», и он должен быть «поздним связыванием», чтобы обойти необходимость использования другими пользователями ссылки на Word.

Моя проблема: я не знаю и не понимаю, как это сделать с моим кодом:

Dim objWord As Word.Application Dim docWord As Word.Document Set objWord = CreateObject("Word.Application") Set docWord = objWord.Documents.Open(ThisWorkbook.Path & "\MyNewWordDocument.doc") docWord.ExportAsFixedFormat OutputFileName:=ThisWorkbook.Path & "\" + Cells(1, 6) + " - Offer Letter.pdf", _ ExportFormat:=wdExportFormatPDF objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges objWord.Quit 

Этот код полностью функциональен для меня. Однако, как указано, он не работает для других из-за того, что ссылка на Word не включена.

Если у всех остальных пользователей такая же версия Office, как у вас, у вас нет проблем. Если у них разные версии, вам нужно опоздать на связывание, которое включает только объявление переменных как Object и объявление любых констант, которые вы используете из библиотеки Word:

 Dim objWord As Object Dim docWord As Object const wdExportFormatPDF as long = 17 const wdDoNotSaveChanges as long = 0 Set objWord = CreateObject("Word.Application") Set docWord = objWord.Documents.Open(ThisWorkbook.Path & "\MyNewWordDocument.doc") docWord.ExportAsFixedFormat OutputFileName:=ThisWorkbook.Path & "\" + _ Cells(1, 6) + " - Offer Letter.pdf", _ ExportFormat:=wdExportFormatPDF objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges objWord.Quit 

Вы также должны удалить ссылку на Word.

Возможно также добавить плагин: http://excelmatters.com/2013/09/23/vba-references-and-early-binding-vs-late-binding/

  • Вставить таблицу Excel в документ Word с помощью PHP
  • Любой способ, которым Mail Merge в Word указывает на источник данных в Excel, в который он встроен?
  • Добавить разрыв строки в длинную строку после каждого 4-го экземпляра разделителя
  • Сортировка Excel через Word ~ ​​error 1004
  • Вставить изображение Excel в Word без работы в Office 2013
  • Я хотел бы извлечь абзацы из слова и импортировать их в ячейки в таблице Excel, сохраняя номера и буквы пули
  • Как экспортировать одну вертикальную таблицу столбцов со многими строками в лист Excel с заголовками на горизонтальной плоскости?
  • При создании диаграмм в скрытом Word2010 открывается Excel. Как отключить это?
  • Как скопировать один раздел текста из Word в Excel с помощью макроса Excel?
  • Word VBA - вставить данные из excel с определенным именем
  • Могу ли я создать транзакцию отмены в Word или Excel? (ВСТО)
  • Interesting Posts

    Как скопировать графики из Excel и внедрить их в PPT?

    Удаление повторяющихся данных из столбцов в Excel

    Excel – ограничивает фиксированный текст или целую длину в заданном диапазоне ячеек

    Попытка создать СУММУ с CONCAT в диапазоне, в листингах google сказано, что нет

    Если ячейка пуста, не загружайте данные автозаполнения

    Excel – вырезать / вставлять строки в отдельные макросы книг

    Заголовки полей сводной таблицы не могут превращаться в заголовки строк

    Как отображать коэффициенты в немерном измерении (счетах) в Excel

    Импорт файлов CSV, поддерживающих формат UTF-8

    Как написать словарь python в файл excel?

    Применить формулу относительно номера столбца в нескольких файлах csv

    VBA Вставить путь к файлу в vLookup на нескольких рабочих листах

    Ошибка 1004, когда я использую Range.Cells () для ссылки на одну ячейку

    Импорт дат из Excel в календарь Outlook

    Как я могу изменить свой код в Excel 2003, чтобы позволить мне вставлять несколько ячеек?

    Давайте будем гением компьютера.