Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / December 2007

Tip: Looking for answers? Try searching our database.

UDF Optional variables become required in Add-In

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
stuart@monakee.com - 13 Dec 2007 09:06 GMT
Hello there...

I've written a UDF that allows me to concantenate a range of cell
values with a prefix & suffix value. See below:

Public Function ITEMLIST(ByVal CELL_RANGE As Range, Optional ByVal
ITEM_PREFIX As Variant, Optional ByVal ITEM_SUFFIX As Variant) As
String
'#### Concatenate range of cells, incorporating specified prefix &
suffix values ####

   Dim pRngCell As Range
   Dim pStrList As String

   On Error GoTo errCode

   For Each pRngCell In CELL_RANGE
       pStrList = pStrList & CStr(ITEM_PREFIX) & CStr(pRngCell.Value)
& CStr(ITEM_SUFFIX)
   Next
   ITEMLIST = pStrList
   Exit Function

errCode:
   ITEMLIST = "# Unable to list!"
End Function

The problem i have is that it works fine in an Excel Workbook, but as
soon as I save the Workbook as an Add-In the Optional variables become
Required!

If anyone can shed any light on this i'd be very grateful...

Rgds

Stuie
Peter T - 13 Dec 2007 10:44 GMT
What do you mean by "as soon as I save the Workbook as an Add-In the
Optional variables become Required!". Eg, the 'Optional' prefixes are
removed in the list of function arguments, an error occurs when used as a
UDF and if so where does it error, can't find the name of the UDF in a cell
formula, or something else.

In passing I'd change

Optional ByVal ITEM_PREFIX As Variant, Optional ByVal ITEM_SUFFIX As Variant
pStrList = pStrList & CStr(ITEM_PREFIX) & CStr(pRngCell.Value) &
CStr(ITEM_SUFFIX)

to

Optional ByVal ITEM_PREFIX As String, Optional ByVal ITEM_SUFFIX As String
pStrList = pStrList & ITEM_PREFIX & CStr(pRngCell.Value) & ITEM_SUFFIX

Regards,
Peter T

> Hello there...
>
[quoted text clipped - 32 lines]
>
> Stuie
monakee@googlemail.com - 13 Dec 2007 11:31 GMT
Peter,

Thanks for your reply.

When I save the file as an Add-In i can still call the UDF, however I
need to enter values for all of the "Optional" arguments for it to
work, otherwise i get the #VALUE! error.

I read an article / post suggesting that Optional arguments need to be
declared as variants in an Add-In.
Tried declaring as a string & got the same result.

Any other suggestions would be great.

Cheers

Stuie

> What do you mean by "as soon as I save the Workbook as an Add-In the
> Optional variables become Required!". Eg, the 'Optional' prefixes are
[quoted text clipped - 15 lines]
> Regards,
> Peter T
Peter T - 13 Dec 2007 12:18 GMT
Hi Stuie,

I can't recreate your #VALUE! error with your function in an addin and
omitting the optional arguments in the cell formula. However with missing
variants Cstr(Empty) returns a "Error 448" in the returned string for each
usage.

In your addin make a new function with slightly different name, eg ITEMLIST2
(don't forget to change in the two places where you assign a return value).
Also make the changes I suggested last time (ie variant to string). Does
this work.

Regards,
Peter T

> Peter,
>
[quoted text clipped - 33 lines]
> > Regards,
> > Peter T
monakee@googlemail.com - 13 Dec 2007 12:59 GMT
Peter,

Apologies, I was being a bit dense!
Didn't realise there was an older version of the Add-In still being
referenced!

Your suggested adjustment works just fine...

Thanks again

Stuie
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.