代码之家  ›  专栏  ›  技术社区  ›  Selrac

VBA中的文本PDF到Excel

  •  1
  • Selrac  · 技术社区  · 6 年前

    here 并试图提取一个PDF文件。代码在Excel中完美地提取了PDF,但我不断收到通知消息。我已经禁用了显示警报,但没有什么区别。

    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 回复  |  直到 6 年前
        1
  •  1
  •   jkpieterse    6 年前

    将代码更改为:

    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
    
        2
  •  1
  •   BigBen    6 年前

    Application.DisplayAlerts 擅长 应用程序, 的实例 文字 ,显示警报。

    Documents.Open

    • 确认转换 “如果文件不是Microsoft Word格式,则为True以显示“转换文件”对话框” -所以呢 False .
    • 只读 - True .

    为了避免第三个弹出窗口。 This 可能也是一个选择。

    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