In replay to @T.M. nice approach:
Try using the next function, which does not need transposing of column array:
Function AddElement(datafield, ByVal rowNum As Long, newData) As Variant
'Note: assumes 1-based 2dim input arrays with same column counts
'create zero-based combo container on the fly
With CreateObject("Forms.ComboBox.1")
.list = datafield ' assign datafield to zero-based list elems
.AddItem , rowNum - 1 ' add Null values to zero-based list index
'assign new data to each zero-based list column
Dim col As Long
For col = LBound(newData, 2) To UBound(newData, 2)
.list(rowNum - 1, col - 1) = newData(1, col)
Next col
AddElement = .list 'it returns a zero based 2D array...
End With
End Function
It can be tested in this way:
Sub testAddArrayrow()
Dim sh As Worksheet, newArr: sh = ActiveSheet 'was easier for me to check...
Dim data: data = sh.Range("A1:C4").Value
Dim newData: newData = sh.Range("A6:C6").Value
newArr = AddElement(data, 2, newData)
sh.Range("P1").Resize(UBound(newArr) + 1, UBound(newArr, 2) + 1).Value = newArr '+ 1 because of zero bazed 2D returned array
End Sub
We must make some researches in order to check the array size limitations, if any. It will be very interesting to not have such limitations, but I simply cannot hope too much from this direction... :)
Anyhow, the brilliant idea remains...