繁体   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