如何:以编程方式更新书签文本
可以将文本插入到 Microsoft Office Word 文档的占位符书签中,以便以后可以检索文本,或者替换书签中的文本。如果在开发文档级自定义项,您还可以在绑定到数据的 Microsoft.Office.Tools.Word.Bookmark 控件中更新文本。有关更多信息,请参见将数据绑定到 Office 解决方案中的控件。
**适用于:**本主题中的信息适用于 Word 2013 和 Word 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
书签对象可以是以下两种类型之一:
Microsoft.Office.Tools.Word.Bookmark 宿主控件。
Microsoft.Office.Tools.Word.Bookmark 控件通过启用数据绑定和公开事件来扩展本机 Microsoft.Office.Interop.Word.Bookmark 对象。有关宿主控件的更多信息,请参见 宿主项和宿主控件概述。
本机 Microsoft.Office.Interop.Word.Bookmark 对象。
Microsoft.Office.Interop.Word.Bookmark 对象不具有事件或数据绑定功能。
将文本分配给书签时,Microsoft.Office.Interop.Word.Bookmark 和 Microsoft.Office.Tools.Word.Bookmark 的行为有所不同。有关更多信息,请参见Bookmark 控件。
使用宿主控件
使用 Bookmark 控件更新书签内容
创建一个过程,该过程采用 bookmark 参数作为书签名,采用 newText 参数作为要赋给 Text 属性的字符串。
说明 将文本分配给 Microsoft.Office.Tools.Word.Bookmark 控件的 Bookmark.Text 或 Bookmark.FormattedText 属性并不会导致书签被删除。
Shared Sub BookMarkReplace( _ ByRef bookmark As Microsoft.Office.Tools.Word.Bookmark, _ ByVal newText As String)
static void BookMarkReplace( ref Microsoft.Office.Tools.Word.Bookmark bookmark, string newText) {
将 newText 字符串赋给 Microsoft.Office.Tools.Word.Bookmark 的 Text 属性。
bookmark.Text = newText End Sub
bookmark.Text = newText; }
使用 Word 对象
使用 Word Bookmark 对象更新书签内容
创建一个过程,该过程具有 bookmark 参数作为 Microsoft.Office.Interop.Word.Bookmark 的名称,并具有 newText 参数作为要赋给书签的 Range.Text 属性的字符串。
说明 将文本分配给本机 Word Microsoft.Office.Interop.Word.Bookmark 对象会导致书签被删除。
Friend Sub BookMarkReplaceNative( _ ByVal bookmark As Word.Bookmark, _ ByVal newText As String)
internal void BookMarkReplaceNative( Word.Bookmark bookmark, string newText) {
将 newText 字符串赋给书签的 Range.Text 属性,这将会自动删除书签。然后重新向 Bookmarks 集合添加书签。
下面的代码示例可用于文档级自定义项。
Dim rng As Word.Range = bookmark.Range Dim bookmarkName As String = bookmark.Name bookmark.Range.Text = newText Me.Bookmarks.Add(Name:=bookmarkName, Range:=rng) End Sub
object rng = bookmark.Range; string bookmarkName = bookmark.Name; bookmark.Range.Text = newText; this.Bookmarks.Add(bookmarkName, ref rng); }
下面的代码示例可用于应用程序级外接程序。此示例使用活动文档。
Dim rng As Object = bookmark.Range Dim bookmarkName As String = bookmark.Name bookmark.Range.Text = newText Me.Application.ActiveDocument.Bookmarks.Add(Name:=bookmarkName, Range:=rng) End Sub
object rng = bookmark.Range; string bookmarkName = bookmark.Name; bookmark.Range.Text = newText; Word.Document document = this.Application.ActiveDocument; document.Bookmarks.Add(bookmarkName, ref rng); }