Is possible to create a function in Office VBA which can work with n-dimensional Array passed as parameter?
It means - the function receives some n-dimensional array (n is not known before). And then access each element in each dimensions. But how to do it when dimension count could be between 1 and many
?
If I want to access the first element (consider Arrays starting from 1 here):
'1D
Array(1)
'2D
Array(1,1)
'...
'nD
Array(1,1, ... 1)
But I don't know how to create this dynamically
More real life example:
Dim MyArr() As String
ReDim MyArr(5, 2, 1)
'MyArr = "A", "B", "C", "D", "E"
' "F", "G"
' "H"
Dim Result As Long
Result = WorkWithArray(MyArr)
Function WorkWithArray(ByVal InputArray As Variant) As Long
Dim ArrDimensions As Long
ArrDimensions = DimCount(InputArray) 'Returns InputArr dimension count (here = 3)
'How to access each element from an Array?
'Only solution what comes in my mind is this nasty case select monster:
Select Case ArrDimensions
Case 1
'Code for 1D Array e.g.: MyArr(1)
Case 2
'Code for 2D Array e.g.: MyArr(1,1)
' ...
'hundreds line of code later...
Case 20
'Code for 20D Array e.g.: MyArr(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
'Mental asylum worker is knocking on my doors...
Case Else
'Code for too much dimensions
End Select
End Function