Array+Array

D

Danny

Hi,

I have 2 (or more) arrays, how can i combine them into 1?


example:
Array 1 = "1, 2, 3, 4"
Array 2 = "A, B, C, D, E, F"

Result:
Array_Combined = "1, 2, 3, 4, A, B, C, D, E, F"


br,
Danny
 
J

JVBeaupre

Hi,

I have 2 (or more) arrays, how can i combine them into 1?

example:
Array 1 = "1, 2, 3, 4"
Array 2 = "A, B, C, D, E, F"

Result:
Array_Combined = "1, 2, 3, 4, A, B, C, D, E, F"

br,
Danny

If the arrays are literally strings then this should work:
Array_Combined = Array_1 & "," & Array_2

If the arrays are true arrays with Array_2(4)= D (some value)
then try this:
dim Array_Combined()
length= ubound(Array_1)+ubound(array_2)+2-lbound(array_2)-lbound
(array_1)
redim Array_Combined( lbound(array_1) to length + lbound(array_1) - 1)
i=lbound(array_1)-1
for j=lbound(array_1) to ubound(array_1)
i=i+1
Array_Combined(i)=array_1(j)
next j
for j=lbound(array_2) to ubound(array_2)
i=i+1
Array_Combined(i)=array_2(j)
next j

or something like that.
Jim
 
P

Peter T

One way,

Sub test()
Dim i As Long, e As Long
Dim s As String
Dim arr1, arr2

arr1 = Array(1, 2, 3, 4)
arr2 = Array("A", "B", "C", "D", "E", "F")

e = UBound(arr1) - LBound(arr1) + 1
e = e + UBound(arr2) - LBound(arr2) + 1

ReDim arr3(0 To e - 1)

e = -1

For i = LBound(arr1) To UBound(arr1)
e = e + 1
arr3(e) = arr1(i)
Next

For i = LBound(arr2) To UBound(arr2)
e = e + 1
arr3(e) = arr2(i)
Next

For i = LBound(arr3) To UBound(arr3)
s = s & arr3(i)
Next

Debug.Print s

End Sub

Regards,
Peter T
 
D

Danny

let me explain more....

actually, my arrays like:

Array A (2 dimension)
A, 1, 2, 3, 4,
B, 5, 6, 7, 8
C, 9, 10, 11, 12,

Array B (2 dimension)
A, A1, A2, A3, A4,
C, C9, C10, C11, C12,
B, B5, B6, B7, B8

output:
A, 1, 2, 3, 4, A1, A2, A3, A4
B, 5, 6, 7, 8, B5, B6, B7,B8
C, 9, 10, 11, 12, C9, C10, C11, C12
 
C

Chip Pearson

The only way to combine arrays is to do it element by element. For
example, the following code creates combines Arr1 and Arr2 into a new
array named ArrRes.


Sub AAA()

Dim Arr1 As Variant
Dim Arr2 As Variant
Dim ArrRes() As Variant
Dim N As Long
Dim J As Long

Arr1 = Array("a", "b", "c", "d")
Arr2 = Array(1, 2, 3)

ReDim ArrRes(LBound(Arr1) To _
(UBound(Arr1) - LBound(Arr1) + (UBound(Arr2) - LBound(Arr2) + 1)))
J = LBound(ArrRes)
For N = LBound(Arr1) To UBound(Arr1)
ArrRes(J) = Arr1(N)
J = J + 1
Next N
For N = LBound(Arr2) To UBound(Arr2)
ArrRes(J) = Arr2(N)
J = J + 1
Next N

End Sub

Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]
 

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

Top