ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   help References in a User Function (https://www.excelbanter.com/excel-programming/380821-help-references-user-function.html)

Will[_11_]

help References in a User Function
 
Hi gang.

I am stuck on asomething that has become quite curly. Yet it seems
like it should be 'obvious'. I

The VBA code itself: "Highlight( )" works great. Except in the
specific context I _want_. This is what I want to do.

I have a user function that takes a cell reference (As Range). I want
to change the display attributes of the range given. For simplicity
conside the simple example below. The Sub works and the Function does
not work.

Can someone point me to a place that explains what I need to do so I
can use the Range from within the Function. My debugging message boxes
all reprot that "thisRange" is a range, and good to go.

Except that it doesn't "work" via the function.


Thanks in advance,
Will.

==========================[ example ]============


Function setHighlight( thisRange As Range )

Call Highlight( thisRange )

End Function

'-----------------

Sub macroHighlight( thisRange As Range )

Call Highlight( thisRange )

End Sub

'-----------------


Chip Pearson

help References in a User Function
 
Will,

Two things immediately come to mind. Since you didn't post the code for
Highlight, I can only take a guess. First, the Function setHighlight doesn't
set a return value. Should it?

Next, if you are calling the function setHighlight from a worksheet cell,
you should remember than VBA code, whether called directly or indirectly
from a worksheet cell, cannot change anything. It can only return a value.
If you attempt to change any part of the Excel environment, the function
will immediately exit and you'll get a #VALUE function.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"Will" wrote in message
oups.com...
Hi gang.

I am stuck on asomething that has become quite curly. Yet it seems
like it should be 'obvious'. I

The VBA code itself: "Highlight( )" works great. Except in the
specific context I _want_. This is what I want to do.

I have a user function that takes a cell reference (As Range). I want
to change the display attributes of the range given. For simplicity
conside the simple example below. The Sub works and the Function does
not work.

Can someone point me to a place that explains what I need to do so I
can use the Range from within the Function. My debugging message boxes
all reprot that "thisRange" is a range, and good to go.

Except that it doesn't "work" via the function.


Thanks in advance,
Will.

==========================[ example ]============


Function setHighlight( thisRange As Range )

Call Highlight( thisRange )

End Function

'-----------------

Sub macroHighlight( thisRange As Range )

Call Highlight( thisRange )

End Sub

'-----------------




Will[_11_]

help References in a User Function
 
Thanks Chip

I was afraid it is something like ...

c you should remember than VBA code, whether called directly or
indirectly
c from a worksheet cell, cannot change anything. It can only return a
value.

The setHighlight() returns a nice string saying "done". The required
effect is to _change_ the reference.

Is there some way to affect changes from inside a function? Say launch
another macro or something?

Thanks for pointing me out of a dead-end.

Cheers,
Will.



All times are GMT +1. The time now is 01:47 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com