Solved

Find-VBA Operation falling into an endless loop in tables

Posted on 2009-07-12
4
386 Views
Last Modified: 2012-06-27
Dear Experts:

below macro counts the number of occurrences of bold formatting in a document. It is running fine on documents WITHOUT tables. As soon as there is a BOLD FORMATTED WORD within a TABLE, the macro falls into an endless loop.

How do I have to change the code to include also tables?

Help is much appreciated. Thank you very much in advance.

Regards, Andreas
Sub CountNumber_FindOperation
 

Dim rngStory As range

Dim i As Long
 

Set rngStory = ActiveDocument.StoryRanges(wdMainTextStory)

    With rngStory.Find

      .Font.Bold = True

      While .Execute

        i = i + 1

      Wend

    End With

If i > 0 Then

  MsgBox "Occurrences of bold formatting found " & i & " time(s)."

Else

  MsgBox "No bold formatting found", vbOKOnly, "No bold formatting!"

  End If

End Sub

Open in new window

0
Comment
Question by:AndreasHermle
  • 2
  • 2
4 Comments
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
do not use the with with the .execute.
syntax: ok
side-effect: endless loop.

I had th esame problem once also ...

Sub CountNumber_FindOperation
 
Dim rngStory As range
Dim i As Long
 
Set rngStory = ActiveDocument.StoryRanges(wdMainTextStory)
rngStory.Find.Font.Bold = True
While rngStory.Find.Execute
  i = i + 1
Wend 
If i > 0 Then
  MsgBox "Occurrences of bold formatting found " & i & " time(s)."
Else
  MsgBox "No bold formatting found", vbOKOnly, "No bold formatting!"
  End If
End Sub

Open in new window

0
 

Author Comment

by:AndreasHermle
Comment Utility
Hi angelIII,
thank you very much for your quick answer. I just tried out your code. I am afraid to tell you that the macro still falls into an endless loop as soon as it hits bold formatted words in a table.

Any idea why?

Help is much appreciated. Thank you very much in advance. Regards, Andreas
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
sorry...
you have to check the Found property also
Sub CountNumber_FindOperation

 

Dim rngStory As range

Dim i As Long

 

Set rngStory = ActiveDocument.StoryRanges(wdMainTextStory)

rngStory.Find.Font.Bold = True

rngStory.Find.Execute

While rngStory.Find.Found

  i = i + 1

  rngStory.Find.Execute

Wend 

If i > 0 Then

  MsgBox "Occurrences of bold formatting found " & i & " time(s)."

Else

  MsgBox "No bold formatting found", vbOKOnly, "No bold formatting!"

  End If

End Sub

Open in new window

0
 

Accepted Solution

by:
AndreasHermle earned 0 total points
Comment Utility
Hi angelIII,

I am afraid to tell you that the macro still falls into an endless loop. Maybe I got a corrupt document but I tried it out on several documents.
Anyhow, in the meantime I found  out thru an internet query that this bug seems to be caused by 'end-of-cell-markers' in the matched text. It is recommended to move the range. I did exactly this, i.e. I just added 'rng.move, 1'. And now it works!

Anyhow, thank you very much for your kind and terrific help.

Regards, Andreas


Set rngStory = ActiveDocument.StoryRanges(wdMainTextStory)

rngStory.Find.Font.Bold = True

While rngStory.Find.Execute

  i = i + 1

  rngStory.Move , 1 ' Added by Andreas Hermle

Wend

If i > 0 Then

  MsgBox "Occurrences of bold formatting found " & i & " time(s)."

Else

  MsgBox "No bold formatting found", vbOKOnly, "No bold formatting!"

  End If

Open in new window

0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
Shortcuts in Word Just the other day I had a training for Microsoft and they wanted me to show how well the new Windows and Office behaved on a touch device, which by the way is great, but it was only then that I realized that using keyboard shortc…
This video walks the viewer through the process of creating a watermark for their document, customizing it, and saving it for viewing/printing needs.
This video shows and describes the main difference between both orientations in Microsoft Word. Viewers will understand when to use each orientation and how to get the most out of them.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now