LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #15   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,452
Default Similar to SPLIT

Yes, it works now.
Interesting and neat, but about twice as slow as with Mid or a Byte array.
Setting a reference to RegExp makes it a bit faster, but not much.
Thanks in any case for the tip.

RBS

"Dana DeLouis" wrote in message
...
It leaves out spaces though and I can't turn in into a function.


Thanks for the feedback. This may not be the best approach, as I'm not
sure what the op had in mind as a function.
We can make a small change to include spaces as below.
Here are a couple of general ideas. Both test examples print the first
and last character.
However, in the second example, the line "Set RE =" is skipped, thus
saving a little setup time.
Other speed-ups would be to set a vba library reference, and avoid the
CreateObject line.
Again, just some general ideas.

Option Explicit
Public RE As Object

Function RE_Split(s As String) As Variant
If RE Is Nothing Then
Set RE = CreateObject("VBScript.RegExp")
RE.Global = True
'// Any word character or white space character
RE.Pattern = "\w|\s"
End If

If RE.Test(s) Then
Set RE_Split = RE.Execute(s)
End If
End Function

Sub TestIt()
Dim v As Variant
Set v = RE_Split("12 ab")
Debug.Print v(0)
Debug.Print v(4)

Set v = RE_Split("ab xyz")
Debug.Print v(0)
Debug.Print v(v.Count - 1)
End Sub


--
HTH :)
Dana DeLouis
Windows XP & Office 2003


"RB Smissaert" wrote in message
...
That's an interesting one.
It leaves out spaces though and I can't turn in into a function.

RBS

"Dana DeLouis" wrote in message
...
...zero-based one dimensional array?

Just to mention another option.
A Regular Expression is zero based also.

Sub Demo()
Dim RE As Object
Dim M As Variant
Dim s As String
Dim J As Long

Set RE = CreateObject("VBScript.RegExp")
s = "abcdef"

RE.Global = True
RE.Pattern = "\w"
Set M = RE.Execute(s)

'// Zero based...
For J = 0 To M.Count - 1
Debug.Print M(J)
Next J
End Sub

--
HTH :)
Dana DeLouis
Windows XP & Office 2003


"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








 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Similar nos. tofimoon4 New Users to Excel 3 December 18th 08 04:20 PM
I need something similar to an IF formula trinalyn3 Excel Worksheet Functions 2 September 4th 08 10:59 PM
How do I remove split a split window? Norm New Users to Excel 3 July 19th 08 10:31 PM
Similar to Vlookup Mike Excel Discussion (Misc queries) 1 February 1st 06 04:21 PM
Need help similar to a histogram DonD Excel Programming 3 December 16th 04 07:47 PM


All times are GMT +1. The time now is 09:54 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"