Экспорт диапазона ячеек в Excel в Word и сохранение документа Word в виде файла Word и файла PDF - PullRequest
0 голосов
/ 08 января 2020

Что я пытаюсь сделать: Экспортировать диапазон ячеек из листа Excel в виде изображения в существующий документ Word, а затем сохранить этот документ Word как документ Word и файл PDF. Имя, которое должен получить файл Word и файл PDF, находится в ячейке на листе Excel.

Проблема: Почти все работает, кроме .pdf-файла. Он генерируется, но при попытке открыть его я получаю сообщение об ошибке, что файл не читается.

Может кто-нибудь помочь с этим? Код, который я использую ниже - я собрал его из разных примеров на этом и других форумах (я действительно начинающий VBA) ...

Большое вам спасибо!

Код:

Sub SaveAsWord()

Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")

Dim WordDoc As Object
Set WordDoc = WordApp.Documents.Open("C:\Users\Jurgen\Documents\remake.docx")

Range("C4:E19").Select
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
WordApp.Visible = True
WordApp.ActiveDocument.Bookmarks("here").Select
Set objSelection = WordApp.Selection
objSelection.Paste

Dim myfilename As String
myfilename = Sheets("Blad1").Range("G15")
WordApp.ActiveDocument.SaveAs2 Filename:="C:\Users\Jurgen\Documents\" & myfilename & ".pdf", _
FileFormat:=wdFormatPDF
WordApp.ActiveDocument.SaveAs2 Filename:="C:\Users\Jurgen\Documents\" & myfilename & ".docx", _
FileFormat:=wdFormatXMLDocument

End Sub

1 Ответ

0 голосов
/ 08 января 2020

Поскольку вы не используете Раннее связывание, и также кажется, что вы не используете Option Explicit, root причина будет в том, что wdFormatPDF равно 0 и должно быть 17.

Либо вы используете Option Explicit и Early Binding, либо просто заменяете константы такими значениями

WordApp.ActiveDocument.SaveAs2 Filename:="C:\Users\Jurgen\Documents\" & myfilename & ".pdf", _ FileFormat:=17

и

WordApp.ActiveDocument.SaveAs2 Filename:="C:\Users\Jurgen\Documents\" & myfilename & ".docx", _ FileFormat:=12

Материал для чтения

Опция Explict

Раннее или позднее Позднее связывание

Позднее Связывание

Microsoft при использовании раннего связывания и позднего связывания в автоматизации

...