View Single Post
 
Old 06-25-2020, 04:47 AM
pradeepraomusale pradeepraomusale is offline Windows 10 Office 2010
Novice
 
Join Date: Jun 2020
Posts: 1
pradeepraomusale is on a distinguished road
Default Get the symbol contain names in word using macros

I am new for word macros. Can you anyone please suggest to me how to write a code in macros for the below solution.

I need to get the text contains special symbols("-") in between text in the word document macros.

This is the table of content we are using in word, Each heading having serial number also

Code:
1 test1
2 test2
3 -  test3 -  
4 test4
5 -  test5 -  
6 test6
7 -  test7 -  
8 test8
9 -  test9 -  
10 test10
11 test11
12 -  test12 -  
13 test13
14 -  test14 -
the result should be need like

Code:
 -  test3 -  
 -  test5 -  
 -  test7 -  
 -  test9 -  
 -  test12 -  
 -  test14 -
This is the sample code I wrote but it not working it getting only single text "-" in the collection
Code:
Public Function GetVariablesFirstLevel() As Collection
On Error GoTo ErrorHandler
    Dim objVar As variable
    Dim colAux As Collection
    Dim strAux As String
    Dim objStoryRange As Range
    Dim forceExitLoop As Boolean
            
    Set colAux = New Collection
    For Each objStoryRange In ActiveDocument.StoryRanges
        objStoryRange.Select
        Selection.Collapse wdCollapseStart
        With Selection
            With .Find
                .ClearFormatting
                .Text = "-"
                .Replacement.Text = ""
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            forceExitLoop = False
            Do While (.Find.Execute And Not forceExitLoop)
                strAux = Trim$(Replace$(Right(.Text, 1), vbCr, vbNullString))
                If (strAux <> vbNullString) Then
                    If (Not IsReplacementOfAVariable(strAux)) Then
                        colAux.Add strAux, UCase$(strAux)
                    End If
                Else
                    forceExitLoop = True
                End If
            Loop
        End With
    Next
    
    Set GetVariablesFirstLevel = colAux
    Set colAux = Nothing
    Set objStoryRange = Nothing
Exit Function
End Function
Reply With Quote