Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 10-22-2024, 09:47 AM
gmayor's Avatar
gmayor gmayor is offline VBA Unlink Cross Reference Fields for Specific Text Windows 10 VBA Unlink Cross Reference Fields for Specific Text Office 2019
Expert
 
Join Date: Aug 2014
Posts: 4,144
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

That should be fairly straightforward:


Code:
Sub Macro1()
Dim oFld As Field
Dim oStory As Range
    For Each oStory In ActiveDocument.StoryRanges
        For Each oFld In oStory.Fields
            If oFld.Type = wdFieldRef Then
                If oFld.Result Like "Part*" Or _
                    oFld.Result Like "Schedule*" Then
                    oFld.Unlink
                End If
            End If
        Next oFld
        If oStory.StoryType <> wdMainTextStory Then
            While Not (oStory.NextStoryRange Is Nothing)
                Set oStory = oStory.NextStoryRange
                For Each oFld In oStory.Fields
                    If oFld.Type = wdFieldRef Then
                        If oFld.Result Like "Part*" Or _
                            oFld.Result Like "Schedule*" Then
                            oFld.Unlink
                        End If
                    End If
                Next oFld
            Wend
        End If
    Next oStory
lbl_Exit:
    Set oStory = Nothing
    Set oFld = Nothing
    Exit Sub
End Sub
Check before and after running the macro with

Code:
Sub Macro2()
Dim oFld As Field
Dim oStory As Range
    For Each oStory In ActiveDocument.StoryRanges
        For Each oFld In oStory.Fields
            If oFld.Type = wdFieldRef Then
                Debug.Print oFld.Result
            End If
        Next oFld
        If oStory.StoryType <> wdMainTextStory Then
            While Not (oStory.NextStoryRange Is Nothing)
                Set oStory = oStory.NextStoryRange
                For Each oFld In oStory.Fields
                    If oFld.Type = wdFieldRef Then
                        Debug.Print oFld.Result
                    End If
                Next oFld
            Wend
        End If
    Next oStory
lbl_Exit:
    Set oStory = Nothing
    Set oFld = Nothing
    Exit Sub
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote
 



Similar Threads
Thread Thread Starter Forum Replies Last Post
VBA Unlink Cross Reference Fields for Specific Text Determining if an in-text table reference was created with Word's native cross reference feature scienceguy Excel Programming 2 10-25-2021 04:44 AM
Macro for removing cross-reference fields with specific contents Ulodesk Word VBA 5 07-13-2017 08:27 AM
VBA Unlink Cross Reference Fields for Specific Text Cross Reference REF fields Unlink mktate Word VBA 7 06-24-2016 05:55 AM
VBA Unlink Cross Reference Fields for Specific Text Totaling specific configuration selections that cross reference multiple fields (tricky) lonniepoet Excel Programming 1 06-09-2016 09:54 AM
manipulating cross-reference fields _wim_ Word 0 12-10-2010 05:52 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 11:57 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft