Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() 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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Parse A String into Two | Excel Worksheet Functions | |||
Parse this string | Excel Discussion (Misc queries) | |||
Q: parse string | Excel Discussion (Misc queries) | |||
Parse String | Excel Programming | |||
String Parse | Excel Programming |