View Single Post
 
Old 07-11-2014, 04:32 PM
macropod's Avatar
macropod macropod is offline Windows 7 32bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,370
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

When you output text to a collapsed bookmarked range, the text gets inserted after it. The 'correct' way to update a bookmark is to use code like:
Code:
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
  .Fields.Update
End With
Set BkMkRng = Nothing
End Sub
and call the process with something like:
Call UpdateBookmark("bookmark_name", "bookmark_text")
If needed, you can call the same sub repeatedly, with different bookmark names and/or bookmark text, such as when you have multiple bookmarks to update or when you need to change the contents of a particular bookmark.
The .Fields.Update method updates the cross-references.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote