簡體   English   中英

使用 Excel VBA 替換 Word 文檔中的字符串

[英]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 文件已啟動,但未替換字符串。

  1. 始終聲明所有變量,在模塊頂部插入Option Explicit以幫助您執行此操作。

  2. 您在Find對象中缺少.Execute ,您還需要指定Replace參數來執行替換(而不僅僅是查找)。

  3. 如果您是后期綁定,那么您不能使用 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.

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