1. Goes back to what you mean by 'Merge'

A1 = {1,2,3,4,5}
A2 = {9.8.7.6}

Amerge = {1,2,3,4,5,9,8,7,6} or Amerge={1,9,2,8,3,7,4,6,5}

2. Since array indecies can start at anything, I think

UBound(a) - LBound(A) +1

is always accurate. A(3 To 10) so 10 - 3 + 1 = 8

3. I don't think so

4. Not sure what you mean. The way I tried has the output arr y just filled up alternating between the two input arrays, and then gets topped off with what's left in the longer one

If you just wanted to stack the two arrays into one, Redim Preserve one to the total and move the other array in

so

A1 = {1,2,3,4,5}
A2 = {9.8.7.6}

Amerge = {1,2,3,4,5,9,8,7,6}