我是新來的VBA和我想放在一起的宏在Excel中。該宏用於在Word文檔中搜索特定的文本字符串,並返回其所在的頁碼(即該列會在文檔的第#頁上顯示「###」)。Excel的VBA從找到的文本得到頁碼在Word
我似乎是非常接近我想要的東西。宏找到文本,我可以讓它告訴我它找到/沒有找到它。但是,當我用代碼運行它返回頁碼時,它告訴我索引超出範圍。我相信困難在於我對對象及其屬性的有限理解。
任何幫助表示讚賞!
Sub OpenWordDoc()
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Activate
wordapp.Documents.Open "filename.docx"
Set findRange = Sheet1.Range("D4:D8")
For Each findCell In findRange.Cells
Set rngFound = wordapp.ActiveDocument.Range.Find
rngFound.Text = findCell.Value
rngFound.Execute
If rngFound.Found Then
findCell.Offset(columnOffset:=1) = rngFound.Parent.Information(wdActiveEndPageNumber)
Else
findCell.Offset(columnOffset:=1) = findCell.Value
End If
Next findCell
wordapp.Quit
Set wordapp = Nothing
End Sub
編輯1:我已經在完全不同的計算機上以及Word和Excel的不同版本上試過了。彈出相同的消息。錯誤是這一塊 - rngFound.Parent.Information(wdActiveEndPageNumber) - 我認爲rngFound.Parent不作爲「選擇」。我也嘗試用wdNumberOfPagesInDocument替換wdActiveEndPageNumber,以查看它是否爲特定值並獲得相同的錯誤消息。
究竟是什麼線是給錯誤?當我嘗試複製這個問題時,它對我來說運行良好。 – Mikegrann
我收到「運行時錯誤‘4608’:值超出範圍」是在哪裏設置單元格等於頁碼 – user6718894
那一行線什麼被傳遞到函數在該行的值? ? – Mikegrann