我有这行代码在word文档中进行搜索和替换:
oDoc.Content.Find.Execute(FindText:="Invoice", ReplaceWith:="Invoice - Paid: " + paid_date, Replace:=word.WdReplace.wdReplaceAll)
有什么办法,我可以用单词而不是整个文档在特定文本框内进行搜索和替换吗?
答案 0 :(得分:1)
这是一种方法。
For Each oCtl As Shape In doc.Shapes
If oCtl.Type = Microsoft.Office.Core.MsoShapeType.msoTextBox Then
oCtl.TextFrame.TextRange.Text.Replace("Invoice", "Invoice - Paid: " + paid_date)
End If
Next
这基本上会搜索文档中的所有文本框并替换" Invoice"
尝试找到文本框的名称时试试这个......
For Each oCtl As Shape In doc.Shapes
If oCtl.Type = Microsoft.Office.Core.MsoShapeType.msoTextBox Then
MsgBox("Name: " & oCtl.Name & vbNewLine & "ID: " & oCtl.ID & vbNewLine & "Title: " & oCtl.Title & vbNewLine & "Text: " & oCtl.TextFrame.TextRange.Text)
End If
Next
这应该为您提供每个文本框中的唯一或可识别项目。
那么你可以这样 -If oCtl.Name = "1234" then oCtl.Text.replace(whatever)
或ID或Title或您决定选择的任何内容。