View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
RB Smissaert RB Smissaert is offline
external usenet poster
 
Posts: 2,452
Default 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