VBA 从 Excel 替换为 Word



我正在使用 VBA 代码我在网上基本上输入了几个部分,然后让 Excel 编辑一个 Word 模板,将输入的帐号替换为<oaccount>,将<date>替换为某事的日期等。

我面临的问题是,在使用它时,输入的是单元格的核心值,而不是您看到的......例如,除了日期和 $ 金额外,我的所有内容都可以工作,因为当它替换<date><amount>时,它们在分别输入 34/04/2019 和 $3,460.00 时显示为"240419"和"3,460.00"。

我想了解如何让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 folderTestFolderTest.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

您是否尝试过在替换行上使用格式功能?这里有一个页面对它进行了描述。您也可以尝试使用 CStr() 函数将其转换为同一行中的字符串。

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

如果使用字符串转换,它将如下所示:.Replacement.Text = CStr(ws.Range("C1525").Value2)

最新更新