私はExcel VBAをVB.NETに移植しています。私はデータの選択を取る関数を持っており、それは1次元または2次元かもしれません。 VBAコードは変数を1次元配列または2次元配列のどちらかとして使用することに関して非常に流動的ですが、VB.NETはそれをエラーとしてマークします。最後の行の「インデックスの数は、インデックス付きの配列の次元数を超える」とそれが失敗VB.NETへのVBAの移植:関数パラメータはおそらく多次元配列です
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
:ここ
を低減するコードです。
編集:「Excel VBAでできるように、VB.NETで1つの変数を使用するにはどうすればよいですか?あいまい/柔軟な次元がありますか?それに失敗すると、「VB.NETで最も自然になるようにコードを変更することをどうお勧めしますか?」
「Dim Tを配列として」と思っています。 – hughdbrown