![]() |
|
![]() |
|
Thread Tools | Display Modes |
|
#1
|
||||
|
||||
![]()
This is dodgy and there is a mixed bag of results possible here. In my testing I can get a hit on the second search if I:
1. Change to Draft View 2. Set Review Markup to show all markup 3. Include a ^? where the first comment ends I prefer your simpler suggestion of searching the larger strings first but perhaps you can experiment with the above preconditions to arrive at a solution which is independent of that.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#2
|
|||
|
|||
![]()
Many thanks for this!
I now see from applying your item 3 above that Word is inserting some sort of hidden special character at the boundaries of the string marked with a comment. Item 3 above on its own solves it. This also allows me to work out a (still clunky, but workable) solution to where strings are not nested (where I can use the system of calling the longer strings before the shorter ones), but overlap, such as for the strings:
The best way I can think of to search for "without you" with the possibility of hidden special characters after "without" (after a comment has been applied to "going without") and/or before "you" (after a comment has been applied to "you are") is to have three variants of the "without you" macro (01 in the case where there is no special character in the string, 02 where there is one plus a space, and 03 where there are two plus a space): Sub CallMacros() Call Without Call WithoutYou01 Call WithoutYou02 Call WithoutYou03 End Sub Sub Without() Dim range As range Set range = ActiveDocument.Content Do While range.Find.Execute("without", False) = True ActiveDocument.Comments.Add range, "This is string: without" Loop End Sub Sub WithoutYou01() Dim range As range Set range = ActiveDocument.Content Do While range.Find.Execute("without you", False) = True ActiveDocument.Comments.Add range, "This is string: without you" Loop End Sub Sub WithoutYou02() Dim range As range Set range = ActiveDocument.Content Do While range.Find.Execute("without^?^?you", False) = True ActiveDocument.Comments.Add range, "This is string: without you" Loop End Sub Sub WithoutYou03() Dim range As range Set range = ActiveDocument.Content Do While range.Find.Execute("without^? ^?you", False) = True ActiveDocument.Comments.Add range, "This is string: without you" Loop End Sub I couldn't find a cleaner way to do this (e.g. ignoring special characters in a search string, or using wildcards within a string), but this does work. I'll work with this for now as it does the job. If there's a better way of doing it, grateful for any further input. Thanks again! |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
problem with searching at outlook | tomer | Outlook | 1 | 11-27-2018 06:21 AM |
Office Word problem Comment author name | jbln | Word | 1 | 08-23-2016 04:40 PM |
![]() |
amitrus | Word VBA | 2 | 02-07-2013 07:53 AM |
Comment-Balloon Textsize Problem | aerzteohnegrenzen | Word | 7 | 05-04-2011 10:45 AM |
![]() |
vikrantkale | Word | 1 | 03-28-2011 06:13 PM |