ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Parse String into Variables (https://www.excelbanter.com/excel-programming/340710-parse-string-into-variables.html)

Gary''s Student

Parse String into Variables
 
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?

--
Gary''s Student

Harald Staff

Parse String into Variables
 
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

"Gary''s Student" skrev i melding
...
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?

--
Gary''s Student




xander1987[_4_]

Parse String into Variables
 

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.


--
xander1987
------------------------------------------------------------------------
xander1987's Profile: http://www.excelforum.com/member.php...o&userid=27236
View this thread: http://www.excelforum.com/showthread...hreadid=469520


Gary''s Student

Parse String into Variables
 
Thnk you very much.
--
Gary''s Student


"Harald Staff" wrote:

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

"Gary''s Student" skrev i melding
...
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?

--
Gary''s Student






All times are GMT +1. The time now is 05:06 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com