[英]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.