View Single Post
 
Old 02-24-2024, 09:12 AM
ctviggen ctviggen is offline Windows 10 Office 2016
Advanced Beginner
 
Join Date: Feb 2021
Posts: 54
ctviggen is on a distinguished road
Default Changing name of both a bookmark and its cross reference

I insert a cross-reference to a numbered item in Word, and I insert the reference to the paragraph number of a numbered paragraph/item. I want to change both the cross-reference AND the "hidden" bookmark to which the cross reference points. Here's my research so far.

The cross-reference to the numbered item looks like "_RefSome#", e.g., _Ref157502046. To see these, alt-F9.

These are cross-references to a "hidden" bookmark associated with the numbered paragraph. To see these, Ctrl-shift-F5, ensure the box "Hidden bookmarks" is checked. The hidden bookmarks are the same format: _RefSome#.

So, the idea should be that you find a bookmark and cross-reference with the same name (_RefSome#) and change that. (Often, there is one bookmark and multiple cross-references, but the idea is the same.) Simple, huh?


(Note: Another idea is to change all the "_Ref" to something else, like "New_", for both bookmarks and cross-references, which is what the code below does for the bookmarks only. This is probably the best idea for what I want to do.)

However, if you open the window by Ctrl-shift-F5, to see hidden bookmarks, and click the "Go To" button, the ENTIRE paragraph is somehow the bookmark.

Doing a simple change of the bookmark name, as below, causes the entire paragraph to be renamed (I copy text selected from an "openDoc" and paste it into a new document, newDoc, which is where "newDoc" comes from):

Code:
    
    For Each bookmark In newDoc.Bookmarks
        ' Check if the bookmark name starts with "_Ref" (assuming this pattern)
        If Left(bookmark.Name, 4) = "_Ref" Then
            bookmark.Range.Text = "New_" & Mid(bookmark.Name, 5)
        End If
     Next bookmark

That is, any numbered paragraph with a hidden bookmark becomes New_Some#, where "Some#" is the Some# from _RefSome# of the bookmark/cross-reference. All of the original text of the paragraph is gone, leaving only New_Some#, although the paragraph is still numbered, eg, "1. New_Some#".

But you can use the hidden bookmark window to delete a hidden bookmark, and nothing happens to the paragraph to which the bookmark is attached.

I'm totally flummoxed. How can I change the bookmark without changing the entire paragraph?
Reply With Quote