return UDT element to spreadsheet cell
Rick,
The usual method is to return an array from your UDF:
Function SeparateValueFromUnit(ByVal strInput As String) As Variant
Dim fromwhere As Integer
fromwhere = InStr(Trim(strInput), ".") + 4
Dim myVal(0 To 1) As Variant
myVal(0) = CDbl(Left(Trim(strInput), fromwhere))
myVal(1) = Mid(Trim(strInput), fromwhere + 1)
SeparateValueFromUnit = IIf(Application.Caller.Columns.Count 1, _
myVal, Application.Transpose(myVal))
End Function
Select two cells (either in one row or one column), then array enter (enter
using Ctrl-Shift-Enter)
=SeparateValueFromUnit(H2)
HTH,
Bernie
MS Excel MVP
"Rick's nickname" wrote in message
...
Using Excel 2003.
I have a module with the following code:
Type ValUnit
tValue As Double
tUnit As String
End Type
Function SeparateValueFromUnit(ByVal strInput As String) As ValUnit
Dim fromwhere As Integer
fromwhere = InStr(trim(strInput), ".") + 4
SeparateValueFromUnit.tValue = Left(trim(strInput), fromwhere)
SeparateValueFromUnit.tUnit = Mid(trim(strInput), fromwhere + 1)
End Function
If I go to the immediate window and enter:
? separatevaluefromunit(" 49.0000RLS").tunit
I get the correct response.
If I go to a cell in the worksheet and enter: (H2 Holds "
49.0000RLS")
=SeparateValueFromUnit(H2).tUnit
I get an error: "The formula you typed contains an error".
How do I return just one element (tUnit, or tValue) to this cell?
|