Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Came across this function to combine arrays in this newsgroup (Sorry can't
rememer who posted it). It takes two arrays as arguments and returns 1 combined array. Works very well. Does anyone know if there is similar function around for 3 or more arrays. I was going build in the third array but realised I may need more than 3. Thanks and sorry for not crediting the author of the function. Function ArrayUnion(ByVal va1 As Variant, ByVal va2 As Variant) As Variant Dim i As Long, Upper As Long If TypeName(va1) = "Empty" Then va1 = va2 Else Upper = UBound(va1) If LBound(va2) = 0 Then Upper = Upper + 1 ReDim Preserve va1(LBound(va1) To UBound(va1) + UBound(va2) - LBound(va2) + 1) For i = LBound(va2) To UBound(va2) va1(Upper + i) = va2(i) Next i End If ArrayUnion = va1 End Function Thanks EM |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Can't you just call the function twice like this:
ThreeArrays = ArrayUnion(ArrayUnion(Array1, Array2), Array3) "ExcelMonkey" wrote: Came across this function to combine arrays in this newsgroup (Sorry can't rememer who posted it). It takes two arrays as arguments and returns 1 combined array. Works very well. Does anyone know if there is similar function around for 3 or more arrays. I was going build in the third array but realised I may need more than 3. Thanks and sorry for not crediting the author of the function. Function ArrayUnion(ByVal va1 As Variant, ByVal va2 As Variant) As Variant Dim i As Long, Upper As Long If TypeName(va1) = "Empty" Then va1 = va2 Else Upper = UBound(va1) If LBound(va2) = 0 Then Upper = Upper + 1 ReDim Preserve va1(LBound(va1) To UBound(va1) + UBound(va2) - LBound(va2) + 1) For i = LBound(va2) To UBound(va2) va1(Upper + i) = va2(i) Next i End If ArrayUnion = va1 End Function Thanks EM |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thats worth looking into. Hadn't thought of that. Thanks
"Charlie" wrote: Can't you just call the function twice like this: ThreeArrays = ArrayUnion(ArrayUnion(Array1, Array2), Array3) "ExcelMonkey" wrote: Came across this function to combine arrays in this newsgroup (Sorry can't rememer who posted it). It takes two arrays as arguments and returns 1 combined array. Works very well. Does anyone know if there is similar function around for 3 or more arrays. I was going build in the third array but realised I may need more than 3. Thanks and sorry for not crediting the author of the function. Function ArrayUnion(ByVal va1 As Variant, ByVal va2 As Variant) As Variant Dim i As Long, Upper As Long If TypeName(va1) = "Empty" Then va1 = va2 Else Upper = UBound(va1) If LBound(va2) = 0 Then Upper = Upper + 1 ReDim Preserve va1(LBound(va1) To UBound(va1) + UBound(va2) - LBound(va2) + 1) For i = LBound(va2) To UBound(va2) va1(Upper + i) = va2(i) Next i End If ArrayUnion = va1 End Function Thanks EM |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Create formula that combines numbers from multiple workBOOKS? | Excel Discussion (Misc queries) | |||
How do I create a custom button that combines format settings? | Excel Worksheet Functions | |||
How do I combines data from multi-worksheets into one in ascendin | Excel Worksheet Functions | |||
How do I make a sheet that combines all tabbed sheets & update as. | New Users to Excel | |||
eomonth funciton in VBA | Excel Programming |