View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Josh Rogers Josh Rogers is offline
external usenet poster
 
Posts: 7
Default aconcat UDF throwing a #NAME error

I'm attempting to display in a cell a concatenated list of items that
match in an array. Here is an example:

Data:
A B
1 Bob Chicken
2 Sally Steak
3 Bob Salad
4 Susan Salad
5 Bob Soda


And for the lookup:

A B
1 Bob Chicken Salad Soda
2 Sally Steak
3 Susan Salad

Column B of the lookup is the portion I'm focusing on here.
Originally, i was able to successfully do this using MCONCAT from the
morefunc addon. This worked great, except I am sending this
spreadsheet to others that do not have this addon installed, and it
isn't reasonable to ask them to install it, so I attempted to change
it to the aconcat UDF from Harlan Grove:

Function ACONCAT(a As Variant, Optional sep As String = "") As String
' Harlan Grove, Mar 2002
Dim y As Variant

If TypeOf a Is Range Then
For Each y In a.Cells
ACONCAT = ACONCAT & y.Value & sep
Next y
ElseIf IsArray(a) Then
For Each y In a
ACONCAT = ACONCAT & y & sep
Next y
Else
ACONCAT = ACONCAT & a & sep
End If

ACONCAT = Left(ACONCAT, Len(ACONCAT) - Len(sep))
End Function



This results in a #NAME error. I can't seem to figure out why. I've
grabbed screenshots of the error:

Before Eval: http://imagebin.ca/view/L0mxlr8.html
Step 1 of Eval: http://imagebin.ca/view/ev1f3A1.html

I placed this in 'Module1' at first, then tried placing it in a sheet
module. I'm not sure what else to check. This is my first attempt at
a UDF, so I appreciate any insight. I'm using Excel 2007 (as are many
of the folks that will be viewing the document), but am saving in
Excel 2003 for compatibility.