Hmmm....... not sure if I can follow all of that.

higherUpper = IIf(upper1 >= upper2, upper1, upper2)
Uses IIf (immediate if) to determine the larger size between upper1 and upper2.
Since we are merging two arrays and if for example Arr(1) had 4 elements, and Arr(2) had 5 elements, haven't we in effect got 9 elements to merge into the tmpArr?