![]() |
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 |
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 |
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 |
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