Merci pour votre aide !!Baies multidimensionnelles ReDim dans Type défini par l'utilisateur dans EXCEL vba
Ma question est la suivante. J'ai une section de code qui a l'intention d'obtenir des données d'une table et de les stocker dans un type défini par l'utilisateur. Puisque la table peut changer de taille, l'idée est de donner dynamiquement la taille aux éléments du type. Le type a deux tableaux unidimensionnels et un tableau bidimensionnel. J'ai des problèmes avec le tableau à deux dimensions. Excel VBA peut-il prendre en charge cette fonctionnalité?
Private Type testing_thermo_data
'one dimesional arrays
temperature() As Double
pressure() As Double
'two dimensional array
composition() As Double
End Type
sub read_from_sheet_to_type()
Dim data as testing_thermo_data
Dim a,b,i as integer
'a and b are determined with some other function (it works), so to simplify I will set them to a number
a=20
b=10
'Now I will reDim the elements of the UDT to the proper size
'One dimension array with a=10 elements
ReDim data.temperature (a) as double
'One dimension array with a=10 elements
ReDim data.pressure (a) as double
'Two dimensional array. Matriz of a=10 by b=20
ReDim data.composition (1 To a, 1 To b) as double
For i = 0 To (a- 1)
data.temperature(i) = Application.ActiveSheet.Cells(i + 3, 1).Value
data.pressure(i) = Application.ActiveSheet.Cells(i + 3, 2).Value
For j = 0 To (b-1)
'This is the line where my code crashes
data.composition(i, j) = Application.ActiveSheet.Cells(i, j + 3).Value
Next j
Next i
end sub
$ Une fois que j'exécute le code, j'obtiens l'erreur suivante comme indiqué dans l'image. Erreur d'exécution '1004': erreur définie par l'application ou objet défini- enter image description here
data.composition n'a pas d'article (0,0); le début commence à (1,1). –
Salut Scott Craner, merci pour votre réponse. J'ai essayé ce que vous avez mentionné et le code fait toujours la même chose. Ne fonctionne pas encore –
Même chose avec Cells() il n'y a pas de cellule à la ligne 0 ça commence par 1 –