#1
|
|||
|
|||
Code works only in isolation not within a larger set
I have two code versions to obtain the same result. They both work perfectly in isolation. When inserted in a larger set of commands they do not work at all on the same document. No error occurs. Can someone help? Thanks!
Code:
Sub Replace1() Dim aRng As Range Set aRng = ActiveDocument.StoryRanges(1) With aRng.Find .Text = "(^0146)" & "(^0171)" '« (146=’) .Replacement.Text = "\1" & "^0187" '» .MatchWildcards = True .Execute Replace:=wdReplaceAll End With End Sub Code:
Sub Replace2() Dim aRng As Range Set aRng = ActiveDocument.StoryRanges(1) With aRng.Find .MatchWildcards = False .Text = Chr(146) & Chr(171) '« (146=’) .Replacement.Text = Chr(146) & Chr(187) '» .Execute Replace:=wdReplaceAll End With End Sub |
#2
|
||||
|
||||
There are other .Find parameters and they are sticky settings. For example, if an earlier find left some formatting parameters turned on then that would stop your simple find from getting hits.
Without seeing your earlier code it is hard to diagnose but you could add in all the usual other .Find settings you get when you record a find/replace to ensure that no other sticky settings are causing a problem.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
Many thanks for your hint, Guessed! It saved me a lot of time.
|
#4
|
|||
|
|||
RobiNew,
I have a bit of fixed code in my normal module. In most of my projects, whenever I want to do a find and replace, I call it Code:
Sub Replace1() Dim aRng As Range ResetFRParameters Set aRng = ActiveDocument.StoryRanges(1) With aRng.Find .Text = "(^0146)" & "(^0171)" '« (146=’) .Replacement.Text = "\1" & "^0187" '» .MatchWildcards = True .Execute Replace:=wdReplaceAl End With End Sub Code:
Sub ResetFRParameters() With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With End Sub |
#5
|
|||
|
|||
Thank you, Gmaxey! Your bit of fixed code is very useful.
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Perfect macro not working when its code is inserted in larger macro | RobiNew | Word VBA | 3 | 10-18-2023 03:19 AM |
VBA code looks ugly, but works ok, needs a going over to neaten it up. | trevorc | Outlook | 0 | 04-21-2022 07:51 PM |
Biz Case for Larger Monitors | Karen615 | Misc | 0 | 12-14-2021 01:41 PM |
larger ribbon | Herm61 | Outlook | 0 | 05-27-2013 12:46 PM |
.OnAction only works in document with the code | donbexcel | Word VBA | 1 | 11-02-2011 05:25 AM |