Reputation: 16064
I have a cell with a spaced delimited string say "NULL 9"
Say this data is stored in A1.
I have a function called
Function splitCell(str As String) As String()
splitCell = split(str, " ")
End Function
I am trying to break the cell into a string array, what I then want to do is to have a formula such as
{=splitCell(A1)}
at the locations A2 and A3, so that A2 would contain "NULL" and A3 would contain "9". Where am I going wrong? Please help. Thanks
Upvotes: 1
Views: 1696
Reputation: 23550
You need to assign the result of the Split to a variant, and if you want the result to be vertical rather horizontal you need to transpose it.
Public Function SplitCell(rng As Range) As Variant
SplitCell = Application.Transpose(Split(rng))
End Function
Upvotes: 2
Reputation: 2752
Sorry, missed that you wanted to expand beyond the simple version.
Function splitCell(str As String, pos As Integer) As String
Dim strarray() As String
strarray = Split(str, " ")
splitCell = strarray(pos)
End Function
A2: =splitCell(A1,0)
You will need to put the function into a module (not in the sheet code)
Upvotes: 0
Reputation: 2752
You can do this entirely with Excel formulas:
A2: =LEFT(A1,FIND(" ",A1))
A3: =MID(A1,FIND(" ",A2)+1,LEN(A1)-FIND(" ",A2))
This should give you the result you are after.
Upvotes: 1