|
|
|
date: Wed, 4 Jun 2008 14:54:15 -0600,
group: microsoft.public.word.vba.beginners
back
Re: Beginner question
The error occurs on the CurrPane.Selection.GoTo, not on the With DoSearch. The
error's text is "Object variable or With block variable not set", and what it's
trying to tell you is that you declared the variable CurrPane but you never
assigned a value to it. Since that object variable doesn't have a value, you
can't use any of its members.
To verify this, run the macro by putting the cursor in the code in the VBA
editor and executing one statement at a time by pressing F8. Notice which
statement is highlighted when the error occurs.
You can make the macro work by inserting this line in place of the commented-out
ActiveDocument.ActiveWindow statement:
Set CurrPane = ActiveWindow.ActivePane
As you learn more VBA, you'll learn that it's better to use a Range object
instead of the Selection object in applications like this... but that's another
subject. :-)
--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so all
may benefit.
On Wed, 4 Jun 2008 14:54:15 -0600, "Jim Szatkowski" wrote:
>I'm using Word 2003 on a Vista Business box. I've tried to duplicate a
>macro shown in VBA for Dummies 4th Edition to remove highlighting of text.
>I'm searching for yellow highlighting and want to simply remove it. Where
>have I gone wrong - I keep getting a 91 error regarding the line "With
>DoSearch" at top of repeated code section.
>
>Macro follows:===================================================
>Public Sub RemoveHighlight()
>'
>' RemoveHighlight Macro
>
>Dim CurrPane As Pane
>' ActiveDocument.ActiveWindow.View = wdNormalView
>
>CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
>Dim DoSearch As Find
>Set DoSearch = CurrPane.Selection.Find
> With DoSearch
> .ClearFormatting
> .Highlight = True
> .MatchCase = False
> While DoSearch.Execute()
> With CurrPane.Selection.FormattedText
> If .HighlightColorIndex = wdYellow Then
> .HighlightColorIndex = wdNoHighlight
> End If
> End With
> Wend
> CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
> End With
>End Sub
>
>
>=======================================
>Thanks!
>Jim
>James L Szatkowski, PE, NSPE
>jamesski@jlsce.com
>http://www.jlsce.com
date: Wed, 04 Jun 2008 20:14:08 -0400
author: Jay Freedman
Re: Beginner question
Worked! Thanks!!
Jim
"Jay Freedman" wrote in message
news:7fbe44tg7d177cmeecrnjhp0neqsu887ic@4ax.com...
> The error occurs on the CurrPane.Selection.GoTo, not on the With DoSearch.
> The
> error's text is "Object variable or With block variable not set", and what
> it's
> trying to tell you is that you declared the variable CurrPane but you
> never
> assigned a value to it. Since that object variable doesn't have a value,
> you
> can't use any of its members.
>
> To verify this, run the macro by putting the cursor in the code in the VBA
> editor and executing one statement at a time by pressing F8. Notice which
> statement is highlighted when the error occurs.
>
> You can make the macro work by inserting this line in place of the
> commented-out
> ActiveDocument.ActiveWindow statement:
>
> Set CurrPane = ActiveWindow.ActivePane
>
> As you learn more VBA, you'll learn that it's better to use a Range object
> instead of the Selection object in applications like this... but that's
> another
> subject. :-)
>
> --
> Regards,
> Jay Freedman
> Microsoft Word MVP FAQ: http://word.mvps.org
> Email cannot be acknowledged; please post all follow-ups to the newsgroup
> so all
> may benefit.
>
> On Wed, 4 Jun 2008 14:54:15 -0600, "Jim Szatkowski"
> wrote:
>
>>I'm using Word 2003 on a Vista Business box. I've tried to duplicate a
>>macro shown in VBA for Dummies 4th Edition to remove highlighting of text.
>>I'm searching for yellow highlighting and want to simply remove it. Where
>>have I gone wrong - I keep getting a 91 error regarding the line "With
>>DoSearch" at top of repeated code section.
>>
>>Macro follows:===================================================
>>Public Sub RemoveHighlight()
>>'
>>' RemoveHighlight Macro
>>
>>Dim CurrPane As Pane
>>' ActiveDocument.ActiveWindow.View = wdNormalView
>>
>>CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
>>Dim DoSearch As Find
>>Set DoSearch = CurrPane.Selection.Find
>> With DoSearch
>> .ClearFormatting
>> .Highlight = True
>> .MatchCase = False
>> While DoSearch.Execute()
>> With CurrPane.Selection.FormattedText
>> If .HighlightColorIndex = wdYellow Then
>> .HighlightColorIndex = wdNoHighlight
>> End If
>> End With
>> Wend
>> CurrPane.Selection.GoTo wdGoToLine, wdGoToFirst
>> End With
>>End Sub
>>
>>
>>=======================================
>>Thanks!
>>Jim
>>James L Szatkowski, PE, NSPE
>>jamesski@jlsce.com
>>http://www.jlsce.com
date: Thu, 5 Jun 2008 13:51:58 -0600
author: Jim Szatkowski
|
|