![]() |
|
![]() |
|
Thread Tools | Display Modes |
|
#1
|
||||
|
||||
![]()
This appears to work with your sample docs. I would recommend testing it on A COPY of your real documents.
Code:
Sub RestrictXRefs() Dim aFld As Field, aRngXRef As Range, sWord As String, aRngAnchor As Range, sBkmk As String Dim arrCode() As String, aRng As Range For Each aFld In ActiveDocument.Fields If aFld.Type = wdFieldRef Then Set aRngXRef = aFld.Result sWord = LCase(Trim(aRngXRef.Words(1))) If sWord = "table" Or sWord = "figure" Then arrCode = Split(Trim(aFld.Code), " ") sBkmk = arrCode(1) If ActiveDocument.Bookmarks.Exists(sBkmk) Then Set aRngAnchor = ActiveDocument.Bookmarks(sBkmk).Range aRngAnchor.MoveStart Unit:=wdCharacter, Count:=Len(sWord) + 1 ActiveDocument.Bookmarks.Add Name:=sBkmk, Range:=aRngAnchor aFld.Update aFld.Select Selection.Range.InsertBefore sWord & " (" Selection.Range.InsertAfter ")" End If End If End If Next aFld End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#2
|
|||
|
|||
![]()
Wow wow wow,
So my conclusion is correct, although some MVPs told me that I can't do it and there is no automatic method to do what I want. Quote:
Quote:
At least, it's Ok now. Lastly, Mr. Guessed, what I do if I want to apply this VBA code to select range inside the document? Again, million and billion thanks. |
#3
|
|||
|
|||
![]() Quote:
Excuse me, Dear Andrew, today I applied your code to my entire thesis and I get unexpected results in chapter 4 of my thesis. Firstly, I thought the problem is only with this chapter, but after applying, using different documents, analyzing the problem. Consequently, I have reached the underlying problem. To clarify, your code works fine for a single occurrence of any cross-references in any chapter, but for second or more occurrences of the same cross-references, it can not deal with them and convert them to a closed parenthesis, see below screenshot 152.jpg Look when applying your code, what happens 153.jpg Additionally, when making a right-click on the number of the cross-reference that has multiple occurrences in the document and making update field, the number of cross-reference gone and appear as closed parenthesis like (), as below 154.jpg For this reason, I get this problem in chapter 4, because I use the same cross-reference many times in my paragraphs. So, can you fix this problem please with special thanks Mr. Andrew? The code is amazing and I don't want to leave it. You can download the attachment file for applying to it. Last edited by laith93; 08-20-2021 at 01:17 PM. |
![]() |
Tags |
vba code, vba editor, word 19 |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to update Exhibits and related cross-references numbers automatically? | Surendra Yadav | Word | 4 | 10-30-2018 03:02 PM |
![]() |
BobT | Word | 5 | 07-27-2018 01:17 PM |
How to cross reference figures or tables when option is not given | timfoolery | Word | 4 | 06-12-2018 05:53 AM |
Convert manual cross references in footnotes to other footnotes to automatic cross references | ghumdinger | Word VBA | 7 | 11-20-2014 11:47 PM |
accept only new page numbers and cross references in review mode | guitargeorge | Word | 7 | 10-15-2013 03:32 PM |