簡體   English   中英

VBA 編譯錯誤:查找時參數不可選

[英]VBA Compile Error: Argument Not Optional on Find

我的最終目標:擁有 Excel_Doc_A 和 Word_Doc_A。 Excel_Doc_A 將使用 VBA 來引用 Word_Doc_A,查找某些文本值(在本例中為“ TITLE ”),在該文本字段中插入超鏈接,並將文本更改為 Excel_Doc_A 中指示的內容,然后將 Word_Doc_A 保存為 NEW文件 Word_Doc_B,其中包含所有文本替換和超鏈接。

我的代碼如下。 我收到一個錯誤“編譯錯誤:查找時參數不是可選的”。 產生此錯誤的代碼是

.Find

在線上

Set myFind = myRange.Find

有任何想法嗎? 謝謝!

Public Sub testing_1()

Dim documentApplication As Word.Application
Dim documentDocument As Word.Document

Set narApplication = CreateObject("word.application")
Set narDocument = narApplication.Documents.Open(ThisWorkbook.Path & "/document_template.docx")

Dim TITLE As String
Dim myRange As range
Dim myFind As Find
Dim filePath As String

TITLE = range("B1")

'For each value, find it's value in the blankdocument
Set myRange = narDocument.Content
Set myFind = myRange.Find
With myFind
    .Text = "__TITLE__"
    searchResult = .Execute
    .Replacement.Text = TITLE
End With

narDocument.Hyperlinks.Add Anchor:=myRange, Address:="http://www.google.com", TextToDisplay:="__TITLE__ "
    
    
filePath = ThisWorkbook.Path & "/document_test.docx"
narDocument.SaveAs2 Filename:=filePath

'Cleanup
narDocument.Quit False
Set narApplication = Nothing
Set narDocument = Nothing

End Sub 

Dim myRange As Range隱含As Excel.Range 您會收到編譯錯誤,因為Set myFind = myRange.Find引用了Excel Range.Find方法。 您需要來自Word object model 的成員。

早期綁定:

Dim myRange As Word.Range
Dim myFind As Word.Find

后期裝訂:

Dim myRange As Object
Dim myFind As Object

最好是一致的。

早期綁定:

Dim documentApplication As Word.Application
Dim documentDocument As Word.Document
Set narApplication = New Word.Application

后期裝訂:

Dim documentApplication As Object
Dim documentDocument As Object
Set narApplication = CreateObject("word.application")

暫無
暫無

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

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