簡體   English   中英

打開Word文檔,復制特定文本,粘貼到Excel電子表格中

[英]Opening word document, copying specific text, paste into excel spreadsheet

我試圖制作一個VBA腳本,以打開一個Word文檔,尋找一個看起來像“ TPXXXX”的單詞,其中“ X”是數字,然后將該文本粘貼到excel電子表格中。 我可以打開word文檔,但是在選擇和查找所需的文本時遇到了麻煩。 到目前為止,我有:

Sub Copy()

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

Doc_Path = "C:\Path\To\File.docx"
Set WordDoc = Word.Documents.Open(Doc_Path)

'Find text and copy it (part that I am having trouble with)
Selection.Find.ClearFormatting
With Selection.Find
    .Text = "TP"
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
End With
Selection.Find.Execute
Selection.EscapeKey
Selection.MoveLeft Unit: wdCharacter , Count:=2
Selection.MoveRight Unit: wdCharacter , Count:=4
Selection.Copy

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

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

End Sub

誰能給我一些指導?

這是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 = "C:\temp\TestFind.docx"
    Set WordDoc = Word.Documents.Open(Doc_Path)
    ' Set WordDoc = ActiveDocument

    ' Create a range to search.
    ' All of content is being search here
    Set r = WordDoc.Content

    'Find text and copy it (part that I am having trouble with)
    With r
        .Find.ClearFormatting
        With .Find
            .Text = "TP[0-9]{4}"
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = True
            .Execute
        End With
        .Copy
        ' Debug.Print r.Text
    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

這可能會讓您入門:

Selection.Find.ClearFormatting
With Selection.Find
    .Text = "TP[0-9]{4}"
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .Execute
End With
Selection.Copy

我使用了通配符匹配.MatchWildcards = True 匹配的模式由.Text = "TP[0-9]{4}" ---匹配“ TP”,后跟正好四位數字。 如果您的應用程序中的位數不同,請用{3,5}替換{4} {3,5}

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM