Je suis en train de transférer Excel VBA vers VB.NET. J'ai une fonction qui prend une sélection de données, et il peut être une dimension ou deux. Le code VBA est assez fluide sur l'utilisation d'une variable comme un tableau 1-D ou 2D, mais VB.NET le marque comme une erreur.Portage VBA vers VB.NET: le paramètre de la fonction est un tableau multidimensionnel possible
Voici le code réduit:
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
Il échoue avec « nombre d'indices dépasse le nombre de dimensions du tableau indexé » sur la dernière ligne. Edit: La question est quelque chose comme: "Comment puis-je utiliser une seule variable dans VB.NET comme je peux dans Excel VBA - ayant dimensionnalité ambigu/flexible?" A défaut, "Comment recommanderiez-vous de changer le code pour qu'il soit le plus naturel dans VB.NET?"
Je pense que le "Dim T comme Array" était ce qui m'a permis de surmonter la bosse. – hughdbrown