Similar to SPLIT
But it seems a function based on a Byte array is not faster then one based
on Mid.
Maybe using Mid$ is a bit faster.
Still if you can do with the character numbers it will be faster.
Function SplitChars(strString As String) As Variant
Dim i As Long
Dim n As Long
Dim btArray() As Byte
Dim arr() As String
btArray = strString
ReDim arr(0 To Len(strString) - 1) As String
For i = 0 To UBound(btArray) Step 2
arr(n) = Chr(btArray(i))
n = n + 1
Next
SplitChars = arr
End Function
RBS
"RB Smissaert" wrote in message
...
Or to get a 0-based array:
Function SplitChars(strString As String) As Variant
Dim i As Long
Dim n As Long
Dim btArray() As Byte
Dim arr
btArray = strString
ReDim arr(0 To Len(strString) - 1)
For i = 0 To UBound(btArray) Step 2
arr(n) = btArray(i)
n = n + 1
Next
SplitChars = arr
End Function
RBS
"RB Smissaert" wrote in message
...
Something like this might suit you and could be faster:
Function SplitChars(strString As String) As Variant
Dim i As Long
Dim n As Long
Dim btArray() As Byte
Dim arr
btArray = strString
ReDim arr(1 To Len(strString))
For i = 0 To UBound(btArray) Step 2
n = n + 1
arr(n) = btArray(i)
Next
SplitChars = arr
End Function
Sub test()
Dim i As Long
Dim arr
arr = SplitChars("string to test")
For i = LBound(arr) To UBound(arr)
MsgBox arr(i), , Chr(arr(i))
Next
End Sub
RBS
"Gary''s Student" wrote in
message ...
Does VBA supply a builtin function like SPLIT() that returns an array
containing the individual characters in a string, or would one have to
be
coded?
--
Gary's Student
|