Parse String into Variables

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I need to parse a string like:

732:1:29:18457:3

Into an array of variables:
DIM ntach(513) AS LONG

So ntach(1) would contain 732
ntach(2) would contain 1
ntach(3) would contain 29
ntach(4) would contain 18457 and
ntach(5) would contain 3

Each string can contain between 1 and 513 multi-digit numbers.
Each number can have between 1 and 6 digits.

If I was in a worksheet and if there were less than 256 numbers per string,
I would use Text to Columns…

What should I do in VBA?
 
Hi

SPLIT does that. But you have to convert every datatype afterwards I
believe:

Sub test()
Dim s As String
Dim t() As String
Dim ntach() As Long
Dim i As Long

s = "732:1:29:18457:3"
t = Split(s, ":")
ReDim ntach(LBound(t) To UBound(t))

For i = LBound(t) To UBound(t)
ntach(i) = Val(t(i))
Next

For i = LBound(ntach) To UBound(ntach)
MsgBox ntach(i), , i
Next

End Sub

HTH. Best wishes Harald
 
InStr is your best bet. Don't really have time to throw together how to
do this in code, but suffice to say Instr(1,MyString,":") should get
you started.
 
Thnk you very much.
--
Gary''s Student


Harald Staff said:
Hi

SPLIT does that. But you have to convert every datatype afterwards I
believe:

Sub test()
Dim s As String
Dim t() As String
Dim ntach() As Long
Dim i As Long

s = "732:1:29:18457:3"
t = Split(s, ":")
ReDim ntach(LBound(t) To UBound(t))

For i = LBound(t) To UBound(t)
ntach(i) = Val(t(i))
Next

For i = LBound(ntach) To UBound(ntach)
MsgBox ntach(i), , i
Next

End Sub

HTH. Best wishes Harald
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top