ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Passing arguments to VB Function (https://www.excelbanter.com/excel-programming/357409-passing-arguments-vbulletin-function.html)

Tom

Passing arguments to VB Function
 
Hi All,

I'm new to this so I hope I get it right in order to get some help.

=Look(A13,D13,(A13),3)*E13
This is the formula entered into a cell expecting a specific value to
be returned to it. The formula calls the VB code listed below. This
would work great except the 2nd reference to A13(enclosed in
paranthensis only for emphasis) in the formula sends the argument to
the function with quotes around it. (This would be sent to the tbl
argument in the function). This argument is actually a table name in
the workbook...that string located in the A13 cell. The quotation
marks prevent the function from working properly...if I eliminate the
quotes, the function works fine.

I could use a concatenated if statement but it becomes unwieldy due to
the number of cells I would have to enter it into. Any suggestions for
eliminating the quotation marks for the tbl argument or maybe a better
way of doing this.

Function Look(style, size, tbl, coll)
Select Case UCase(style)
Case "DH"
Look = Application.VLookup(size, tbl, coll)
Case "LT2"
Look = Application.VLookup(size, tbl, coll)
Case "CSE2"
Look = Application.VLookup(size, tbl, coll)
Case Else
Look = Evaluate("NA()")
End Select
End Function

Thanks for any help you can give me.
Tom


Zack Barresse[_3_]

Passing arguments to VB Function
 
Hi Tom,

A couple of things. You should declare what type of variable you are
passing in your formula. Also, you can combine the Case (first 3) as they
do the same thing. Example ..

Function Look(rngStyle As Range, rngSize As Range, rngTbl As Range, lngColl
As Long)
Select Case UCase(style)
Case "DH", "LT2", "CSE2"
Look = Application.WorksheetFunction.VLookup(rngSize, rngTbl,
lngColl)
Case Else
Look = Evaluate("NA()")
End Select
End Function

Can you provide a sample or two of what your function looks like and what it
returns? Also post what data is in the referenced cells.

--
Regards,
Zack Barresse, aka firefytr
To email, remove NOSPAM


"Tom" wrote in message
ups.com...
Hi All,

I'm new to this so I hope I get it right in order to get some help.

=Look(A13,D13,(A13),3)*E13
This is the formula entered into a cell expecting a specific value to
be returned to it. The formula calls the VB code listed below. This
would work great except the 2nd reference to A13(enclosed in
paranthensis only for emphasis) in the formula sends the argument to
the function with quotes around it. (This would be sent to the tbl
argument in the function). This argument is actually a table name in
the workbook...that string located in the A13 cell. The quotation
marks prevent the function from working properly...if I eliminate the
quotes, the function works fine.

I could use a concatenated if statement but it becomes unwieldy due to
the number of cells I would have to enter it into. Any suggestions for
eliminating the quotation marks for the tbl argument or maybe a better
way of doing this.

Function Look(style, size, tbl, coll)
Select Case UCase(style)
Case "DH"
Look = Application.VLookup(size, tbl, coll)
Case "LT2"
Look = Application.VLookup(size, tbl, coll)
Case "CSE2"
Look = Application.VLookup(size, tbl, coll)
Case Else
Look = Evaluate("NA()")
End Select
End Function

Thanks for any help you can give me.
Tom





All times are GMT +1. The time now is 07:24 PM.

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