我正在嘗試打開一個Word文檔的VBA腳本,看起來像「TPXXXX」,其中「X」是數字,然後粘貼文本轉換爲Excel電子表格。我可以打開Word文檔,但是我無法選擇和查找需要的文本。到目前爲止,我有:打開Word文檔,複製特定文本,粘貼到Excel電子表格中
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
任何人都可以給我一些指針嗎?
這是完美的!你知道我將如何創建一個循環找到所有的TP號碼? – electronicaneer
而不是'.Execute',你可以做一個循環:'執行while.Execute'。例如,請參閱[這裏](http://superuser.com/questions/1009085/find-all-instances-of-a-text-and-make-it-a-hyperlink-with-a-macro)。 – xidgel
還有一件事,如果沒有更多的TPXXXX號碼,我將如何停止循環? TP號碼的數量根據我需要複製的每個文件而有所不同,我能想到的唯一可能是計算TP號碼的數量,然後使用For循環多次迭代。 – electronicaneer