将特定文本从Word文档复制到Excel

时间:2019-06-03 01:58:46

标签: excel vba

我有另一个用户遇到的类似问题。 Xidgel解决了这个问题。该代码为他们工作,但似乎不适用于我。我想在Word文档中搜索具有

的任何内容

3个字母,“ x”,4个数字。 例如。 ADZx4391

并将其复制到Excel工作表中。

Sub CopyTPNumber()

    'Create variables
    Dim Word As New Word.Application
    Dim WordDoc As New Word.Document
    Dim r As Word.Range
    Dim Doc_Path As String
    Dim WB As Excel.Workbook
    Dim WB_Name As String


    Doc_Path = "Libraries\Documents\EXPORTCOMMENTS.docx"
    Set WordDoc = Word.Documents.Open(Doc_Path)
    ' Set WordDoc = ActiveDocument

    ' Create a range to search.
    Set r = WordDoc.Content

    'Find text and copy it
    With r
        .Find.ClearFormatting
        With .Find

        With .Find
            .Text = "[A-Z]{3}x[0-9]{4}"
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .Execute
   End With
        .Copy
    End With


    'Open excel workbook and paste
    WB_Name = Excel.Application.GetOpenFilename(",*.xlsx")
    Set WB = Workbooks.Open(WB_Name)

    WB.Sheets("Sheet1").Select
    Range("AB2").Select
    ActiveSheet.Paste
    WordDoc.Close
    Word.Quit

End Sub

运行代码时,出现未定义的用户定义类型。

2 个答案:

答案 0 :(得分:1)

您需要设置对Word的引用。

在VBA窗口中:

工具>参考> Microsoft Word 14.0对象库(选中此框)>确定

(请注意,数字可能不是14.0,具体取决于您的Word版本)

您还存在语法错误(查找重复)

答案 1 :(得分:0)

也许您还没有添加对Word库的引用?

enter image description here