[英]Replacing string in Word document using Excel VBA
我有一個 .docx 模板,其中包含要使用 Excel VBA 替換的字符串(如序列號、日期、作者等)。
Private Sub Create()
Dim MaFeuille As Worksheet
Dim file As String
Set MaFeuille = Sheets("Information")
file = ActiveWorkbook.Path & "\" & "nomfichier.docx"
Set word_app = CreateObject("Word.Application")
With word_app
.Visible = True
.WindowState = wdWindowStateMaximize
End With
Set word_fichier = word_app.documents.Open(file)
word_app.Selection.Find.ClearFormatting
word_app.Selection.Find.Replacement.ClearFormatting
With word_app.Selection.Find
.Text = "blabla"
.Replacement.Text = "coucou"
End With
End Sub
Word 文件已啟動,但未替換字符串。
始終聲明所有變量,在模塊頂部插入Option Explicit
以幫助您執行此操作。
您在Find
對象中缺少.Execute
,您還需要指定Replace
參數來執行替換(而不僅僅是查找)。
如果您是后期綁定,那么您不能使用 Word 庫中存在的枚舉,例如wdWindowStateMaximize
而不手動定義它,因此替代方法是直接提供值。
Option Explicit
Private Sub Create()
Dim MaFeuille As Worksheet
Set MaFeuille = Sheets("Information")
Dim file As String
file = ActiveWorkbook.Path & "\" & "nomfichier.docx"
Dim word_app As Object
Set word_app = CreateObject("Word.Application")
With word_app
.Visible = True
.WindowState = 1 'value for wdWindowStateMaximize
End With
Dim word_fichier As Object
Set word_fichier = word_app.Documents.Open(file)
With word_fichier.Range.Find
.Text = "blabla"
.Replacement.Text = "coucou"
.Execute Replace:=2 'value for wdReplaceAll
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.