1
我对VB脚本没有太多的经验,但我正在尝试写一些将在word文档中搜索特定字符串的内容,将其替换为我指定的任何内容然后在标签打印机上打印出来。VB脚本查找和替换Word文档中的文本
它做了第一次替换就好了,但不是第二次。任何人都可以看看,看看我可能做错了什么?
Option Explicit
Dim WordApp
Dim WordDoc
Dim strReadCompName
Dim strReadCompSN
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = TRUE
WordApp.Documents.Open("C:\LabelTemplate.doc")
WordApp.Documents("LabelTemplate.doc").Activate
Set WordDoc = WordApp.ActiveDocument
strReadCompName = InputBox("Enter Computer Name", "Name")
strReadCompSN = InputBox("Enter Serial Number", "Serial")
With WordApp.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWholeWord = TRUE
.Text = "nametext"
.Execute ,,,,,,,,,strReadCompName
End With
With WordApp.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWholeWord = TRUE
.Text = "serialtext"
.Execute ,,,,,,,,,strReadCompSN
End With
WordDoc.PrintOut()
WordDoc.Saved = TRUE
WordApp.Quit
不熟悉脚本,但在VB中,您可以将替换命令组合在一起。我遇到了同样的问题,分组时解决了问题。也许把它们加到相同的地方,End With Block – sealz 2011-05-25 18:33:33
''serialtext“'在文档中的''nametext''之后?这可能是搜索从最后一场比赛开始。另外,当找到成功不Word选择找到的文本?如果是这样,则第二次搜索可能仅在所选文本内搜索而不是整个文档。 – 2011-05-25 19:39:38
是的,它确实出现在“nametext”之后。如果是这样的话,我将如何“解除”文本并将光标放回到文件的开头,以便我可以再次从那里搜索? – Cuthbert 2011-05-25 19:47:55