簡體   English   中英

VBA 從 Excel 替換為 Word

[英]VBA Replace From Excel to Word

我使用VBA codeI拿起網上基本輸入幾個部分,並且讓Excel然后編輯Word模板,替換<oaccount>對輸入的帳號和<date>為某事的日期等。

我面臨的問題是,在使用它時,輸入的是單元格的核心值,而不是您看到的內容……例如,除了日期和 $ 金額外,我的所有內容都可以正常工作,因為當它替換<date><amount>在輸入 24/04/2019 和 $3,460.00 時分別顯示為“240419”和“3450”。

我想知道如何讓 Excel 用 Excel 的實際顯示值替換關鍵字。

以下是我用來執行此操作的內容:

Option Explicit

Public Sub WordFindAndReplace()
Dim ws As Worksheet, msWord As Object

Set ws = ActiveSheet
Set msWord = CreateObject("Word.Application")

With msWord
    .Visible = True
    .Documents.Open "F:\Test folder\TestFolder\Test.docx"
    .Activate

    With .ActiveDocument.Content.Find
        .ClearFormatting
        .Replacement.ClearFormatting

        .Text = "CName"
        .Replacement.Text = ws.Range("C1525").Value2

        .Forward = True
        .Wrap = 1               'wdFindContinue (WdFindWrap Enumeration)
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False

        .Execute Replace:=2     'wdReplaceAll (WdReplace Enumeration)
    End With
    .Quit SaveChanges:=True
End With
End Sub

您是否嘗試過在替換行上使用 Format 功能? 有一個頁面描述它here 您還可以嘗試使用 CStr() 函數將其轉換為同一行中的字符串。

如果您使用格式,它看起來像這樣: .Replacement.Text = Format(ws.Range("C1525").Value2,"dd/mm/yyyy")

如果您使用字符串轉換,它將如下所示: .Replacement.Text = CStr(ws.Range("C1525").Value2)

暫無
暫無

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

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