vb.net在Word中的文本框中查找并替换文本

时间:2015-10-02 07:32:08

标签: vb.net

我有这行代码在word文档中进行搜索和替换:

oDoc.Content.Find.Execute(FindText:="Invoice", ReplaceWith:="Invoice - Paid: " + paid_date, Replace:=word.WdReplace.wdReplaceAll)

有什么办法,我可以用单词而不是整个文档在特定文本框内进行搜索和替换吗?

1 个答案:

答案 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或您决定选择的任何内容。