替换书签中的文本

Replace Text in Bookmark

我正在为我的应用程序使用 Interop.Word。我从文档中获取书签,然后我想在其中插入文本。但是我的构造只在书签后插入文本:

    WordDocument.Bookmarks[bookmark].Select();
    WordApp.Selection.TypeText(text);

我如何以编程方式插入括号内,就像在图像上一样,而不是替换它的书签?因为现在,代码将文本插入括号内,但会删除书签本身。

我的理解是 TypeText 将插入文本,除非 Options.ReplaceSelection 设置为 true。更多:https://msdn.microsoft.com/en-us/VBA/Word-VBA/articles/selection-typetext-method-word

在 VBA 中,您将使用如下代码更新书签:

Sub UpdateBookmark(StrBkMk As String, StrTxt As String)
Dim BkMkRng As Range
With ActiveDocument
  If .Bookmarks.Exists(StrBkMk) Then
    Set BkMkRng = .Bookmarks(StrBkMk).Range
    BkMkRng.Text = StrTxt
    .Bookmarks.Add StrBkMk, BkMkRng
  End If
End With
Set BkMkRng = Nothing
End Sub

您可以使用如下代码调用:

Call UpdateBookmark("BookMarkName", "text to apply")

我会把它留给你做 C# 改编。