• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 249
  • Last Modified:

trying to retrieve the end range of a range object

I want to retrieve the end range of a range object but my code in the follow only gave a return of value 1:
Sub cntEndRng()
Dim x As Range, y As Range, z As Range
Dim xrnt As Long, yrnt As Long, zrnt As Long
Set x = ActiveDocument.Paragraphs(1).Range
Set y = ActiveDocument.Paragraphs(1).Range
xrnt = x.Start
yrnt = y.End
Set z = ActiveDocument.Range(xrnt, yrnt)
if z.find.execute("_")=ture then
zrnt=z.moveuntil("_",wdforward)
set a=activedocument.range(xrnt,xrnt+zrnt)
arnt=a.end
MsgBox arnt
End Sub
I and looking for _ in a text and need to know the position of that _.
What could I have done differently to get the right result?
Thank you.
0
isischen
Asked:
isischen
  • 4
  • 4
1 Solution
 
isischenAuthor Commented:
I am using Microsoft Word 2003' VBA language.
0
 
GrahamSkanRetiredCommented:
It is not at all clear what you are trying to do.

If you want to find the range of the first "_" in the first paragraph of of the active document, all you need is this.

Sub cntEndRng()
    Dim z As Range
   
    Set z = ActiveDocument.Paragraphs(1).Range
    If z.Find.Execute("_") = True Then
            MsgBox "The string: ""_"" is in the first paragraph, ending " & z.End & " characters from the start of the document."
    Else
            MsgBox "There is no ""_"" is in the first paragraph."
    End If
End Sub
0
 
isischenAuthor Commented:
GrahamSkan, thank you for your comment but your sub always run into the ELSE:...  no "_" msgbox.
I am going to find a number of target symbols and increments each range along the way therefore I need to know each start and end position of each symbol found in a paragraph.  So that I could referencing each symbol in a seperate sub.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
isischenAuthor Commented:
sorry, GrahamSkan, Your code did worked after all but I want to find the end posotion of an incremented range summed from a series of variable of return by the MOVEUNTIL method.
0
 
GrahamSkanRetiredCommented:
You can keep use the Find object to locate subsequent positions

Sub cntEndRng()
    Dim z As Range
    Dim Ends() As Long
    Dim i As Integer
    Dim strFindText As String
   
    strFindText = "_"
    Set z = ActiveDocument.Paragraphs(1).Range
    Do While z.Find.Execute(strFindText)
        ReDim Preserve Ends(i)
        Ends(i) = z.End
        Debug.Print z.End
        i = i + 1
    Loop
    MsgBox "There are " & i & " occurences of """ & strFindText & """ in the first paragraph."
End Sub


0
 
GrahamSkanRetiredCommented:
I misunderstood, because your example showed only the one character. I'll create some similar code for Moveuntil.
0
 
isischenAuthor Commented:
My symbol varies so I can't use a loop.
0
 
GrahamSkanRetiredCommented:
Don't know why you can't use a loop, but this will find the position of any of the characters in the list defined by strFindText;
Sub cntEndRng()
    Dim z As Range
    Dim Ends() As Long
    Dim i As Integer
    Dim strFindText As String
    Dim c As Integer
    strFindText = "_a"
    Set z = ActiveDocument.Paragraphs(1).Range
    z.Collapse wdCollapseStart
    Do
        c = z.MoveUntil(strFindText)
        If c = 0 Then
            Exit Do
        End If
        If z.InRange(ActiveDocument.Paragraphs(1).Range) Then
            z.Move wdCharacter, 1
            ReDim Preserve Ends(i)
            Ends(i) = z.End
            i = i + 1
        End If
    Loop While z.InRange(ActiveDocument.Paragraphs(1).Range)
    MsgBox "There are " & i & " occurences of any of the characters in """ & strFindText & """ in the first paragraph."
End Sub

Open in new window

0

Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now