Я портирую Excel VBA на VB.NET. У меня есть функция, которая берет выборку данных, и она может быть одномерной или двух. Код VBA достаточно гибок в использовании переменной в виде 1-D или 2-D массива, но VB.NET помечает ее как ошибку.
Вот сокращенный код:
Public Function Stat(ByVal Data As Range) As Object
Dim Y() As Object
Dim Appp As New Application() ''// Very annoying
''//Convert worksheet range into array vector
Y = Appp.WorksheetFunction.Transpose(Appp.WorksheetFunction.Transpose(Data))
Dim dimensions As Integer : dimensions = NumberOfArrayDimensions(Y)
If dimensions > 1 Then
For i = LBound(Y) To UBound(Y)
If VarType(Y(i, 1)) <> 0 Then
Сбой «количество индексов превышает количество измерений индексированного массива» в последней строке.
Редактировать: Таким образом, вопрос звучит примерно так: «Как я могу использовать одну переменную в VB.NET, как в Excel VBA - с неоднозначной / гибкой размерностью?» В противном случае, "Как бы вы посоветовали изменить код, чтобы быть наиболее естественным в VB.NET?"