Текст PDF в Excel в VBA - PullRequest
       5

Текст PDF в Excel в VBA

0 голосов
/ 31 августа 2018

Я использовал код, который нашел здесь и попытался извлечь файл PDF. Код прекрасно извлекает PDF в Excel, но я продолжаю получать уведомления. Я отключил отображение предупреждений, но это не имеет значения.

Sub ImportPDF()
    Dim objWord As Object
    Dim objDoc As Object
    Dim wdFileName

    Set objWord = CreateObject("word.Application")
    wdFileName = "C:\42046_120_2077802.pdf"

    Application.DisplayAlerts = False

    Set objDoc = GetObject(wdFileName)

    objWord.Documents.Open (wdFileName)
    objWord.Selection.WholeStory
    objWord.Selection.Copy

    Sheets(1).Select
    [A1].Select
    ActiveWorkbook.ActiveSheet.Paste

    'objDoc.Close ' I get an error message if I add this (Object does not support this property or method)
    objWord.Quit
    Application.DisplayAlerts = True
End Sub

Я получаю следующие сообщения:

File In use message

Word message convert to PDF

Word message file in use

Есть ли способ избавиться от сообщений?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Application.DisplayAlerts относится к приложению Excel , не экземпляру Word , в котором отображаются предупреждения.

Чтобы избежать первых двух предупреждений, используйте дополнительные параметры Documents.Open

  • ConfirmConversions - "True для отображения диалогового окна Convert File, если файл не в формате Microsoft Word" - так False.
  • ReadOnly - «Верно, чтобы открыть документ только для чтения» - так True.

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

Sub ImportPDF()
    Dim objWord As Object, objDoc As Object
    Dim wdFileName As String

    Set objWord = CreateObject("word.Application")
    wdFileName = "C:\42046_120_2077802.pdf"

    Set objDoc = objWord.Documents.Open(wdFileName, False, True)
    objWord.Selection.WholeStory
    objWord.Selection.Copy

    ThisWorkbook.Sheets(1).Range("A1").Select
    ThisWorkbook.Sheets(1).Paste

    objDoc.Close False
    objWord.Quit
End Sub
0 голосов
/ 31 августа 2018

Измените свой код на:

Sub ImportPDF()
    Dim objWord As Object
    Dim objDoc As Object
    Dim wdFileName

    Set objWord = CreateObject("word.Application")
    wdFileName = "C:\42046_120_2077802.pdf"

    Application.DisplayAlerts = False

    Set objDoc = objWord.Documents.Open(wdFileName)
    objWord.Selection.WholeStory
    objWord.Selection.Copy

    Sheets(1).Select
    [A1].Select
    ActiveWorkbook.ActiveSheet.Paste

    objDoc.Close SaveChanges:=False
    objWord.Quit
    Application.DisplayAlerts = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...