如何解决用于查找和替换Word文档中文本的VB脚本
| 我对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
解决方法
解决了我自己的问题哈哈
Oracle认证专家是正确的。我要做的就是添加另一条语句将光标移回开头。我只是将WordApp.Selection.GoTo 1添加到开头。
Option Explicit
\'Procedure to edit word document add name and serial number.
Sub SearchAndRep(searchTerm,replaceTerm,WordApp)
WordApp.Selection.GoTo 1
With WordApp.Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWholeWord = True
.Text = searchTerm
.Execute,replaceTerm
End With
End Sub
Dim WordApp
Dim WordDoc
Dim strReadCompName
Dim strReadCompSN
Dim objNetwork,WSHPrinters,counter
\'Enumerate through printers to find local Zebra printer.
Set objNetwork = CreateObject(\"WScript.Network\")
Set WSHPrinters = objNetwork.EnumPrinterConnections
For counter = 0 To WSHPrinters.Count - 1 Step 2
If Left(WSHPrinters.Item(counter +1),5) = \"Zebra\" Then
WScript.Echo(WSHPrinters.Item(counter +1))
objNetwork.SetDefaultPrinter(WSHPrinters.Item(counter +1))
End If
Next
\'Create a Microsoft Word Object and make it invisible.
Set WordApp = CreateObject(\"Word.Application\")
WordApp.Visible = FALSE
\'Open LabelTemplate.doc for editing.
Set WordDoc = WordApp.Documents.Open(\"C:\\LabelTemplate.doc\")
\'Read in name and serial number to print on label.
strReadCompName = InputBox(\"Enter Computer Name\",\"Name\")
strReadCompSN = InputBox(\"Enter Serial Number\",\"Serial\")
\'Procedures to edit the Word Document to add name and serial number.
SearchAndRep \"nametext\",strReadCompName,WordApp
SearchAndRep \"serialtext\",strReadCompSN,WordApp
\'Print out the label.
\'WordApp.PrintOut()
\'Set the default printer back to what it was before.
\'Still have to do this.
objPrinter.SetDefaultPrinter \"\\\\******\\**********\"
WordDoc.Saved = TRUE
WordDoc.Close
WordApp.Quit
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。