View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
smartin smartin is offline
external usenet poster
 
Posts: 915
Default UDF to return text

Forgone wrote:
Hi all, I'm trying to figure out how to make a UDF obtain a string
from any given cell, split and return the value depending on what the
user asks for.

For example.

Cell value in A1 = 233-2330100-100102-101-99999999-999999
There is 6 segments to this string....

The idea was that I would enter in cell A2

=CoA(A1,2)

2 representing the second segement.

The UDF would be something like

Public Function CoA(account as string, xyz) as number
Select Case xyz
Case 1
CoA = left(account, 3)
Case 2
CoA = Mid(account, 7, 3)
Case n
CoA = n
End Select
End Function

I'm just struggling with what I need to include for it to work.


Try this out:

Function CoA(ByVal CellText As String, _
ByVal TheIndex As Long, _
Optional Delimiter As String = "-" _
) As String
Dim SplitText As Variant
SplitText = Split(CellText, Delimiter)
CoA = SplitText(TheIndex - 1)
End Function