Passing result of multiple split function results to 1 Array

  • Thread starter Thread starter ExcelMonkey
  • Start date Start date
E

ExcelMonkey

I know I can use the split function on a string to return an array.

Array = Split(var2)

I have 8 string variables that I want to apply the split function to and I
then want to send all these elements into 1 Master Array. Do I still have to
create the 8 individual arrays as a middle step or can bypass this using some
sort of aggregation in brackets like:

MasterArray =
(Split(var1),Split(var2),Split(var3),Split(var4),Split(var5),Split(var6),Split(var7),Split(var8))

Thanks

EM
 
Maybe you could concatenate the 8 strings into one giant string (use the same
delimiter between strings as you use between fields).

Then split that giant string.

dim myBigString as string
dim s1 as string
dim s2 as string
'...
dim s8 as string
dim myArray as variant

myBigString = s1 & "," & s2 & "," & ... & "," & s8
myarray = split(mybigstring, ",")
 
Here's one idea. I assume your delimiter is the Space character.

Sub Demo()
Dim m, s1, s2, s3
s1 = "a b c d"
s2 = "e f g h"
s3 = "i j k"
m = Split(Join(Array(s1, s2, s3)))
End Sub
 
ExcelMonkey said:
I know I can use the split function on a string to return an array.

Array = Split(var2)

I have 8 string variables that I want to apply the split function to and I
then want to send all these elements into 1 Master Array. Do I still have to
create the 8 individual arrays as a middle step or can bypass this using some
sort of aggregation in brackets like:

MasterArray =
(Split(var1),Split(var2),Split(var3),Split(var4),Split(var5),Split(var6),Split(var7),Split(var8))

Thanks

EM
I use Excel2002, so I don't have the Split function. But I suspect that
if the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook, the
following will do what you are seeking:

MasterArray = MakeArray(Split(var1), Split(var2), . . .,Split(var8), 1)

If you want MasterArray to be 0-based rather than 1-based, change the 1
to 0. In either event, MasterArray will be one-dimensional.

Alan Beban
 
Split was added in xl2k.

Alan said:
I use Excel2002, so I don't have the Split function. But I suspect that
if the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook, the
following will do what you are seeking:

MasterArray = MakeArray(Split(var1), Split(var2), . . .,Split(var8), 1)

If you want MasterArray to be 0-based rather than 1-based, change the 1
to 0. In either event, MasterArray will be one-dimensional.

Alan Beban
 
Dave said:
Split was added in xl2k.

Oh good! So I tested it.

If the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook

MasterArray = MakeArray(Split(var1), Split(var2), . . .,Split(var8), 1)

If you want MasterArray to be 0-based rather than 1-based, change the 1
to 0. In either event, MasterArray will be one-dimensional.

Alan Beban
 
Back
Top