Array di trasposizione VBA

Questo tutorial ti insegnerà come trasporre un array usando VBA.

Trasposizione matrice

Questa funzione traspone un array bidimensionale:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funzione TransposeArray(MyArray As Variant) As VariantDim x quanto più lungo, y quanto più lungoDim maxX quanto più lungo, minX quanto più lungoDim maxY quanto più lungo, minY quanto più lungoDim tempArr come variante"Ottieni limiti superiori e inferiori"maxX = UBound(MyArray, 1)minX = LBound(MyArray, 1)maxY = UBound(MyArray, 2)minY = LBound(MyArray, 2)"Crea nuovo array temporaneo"ReDim tempArr (da minX a maxX, da minY a maxX)"Trasponi l'array"Per x = minX a maxXPer y = minY a maxYtempArr(y, x) = MyArray(x, y)Avanti sìAvanti x"Matrice di output"TransposeArray = tempArrFine funzioneSub TestTransposeArray()Dim testArr(da 1 a 3, da 1 a 2) come varianteDim outputArr As Variant"Assegna valori array"testArr(1, 1) = "Steve"testArr(1, 2) = "Johnson"testArr(2, 1) = "Ryan"testArr(2, 2) = "Johnson"testArr(3, 1) = "Andrea"testArr(3, 2) = "Scott""Chiama la funzione di trasposizione"outputArr = TransposeArray(testArr)"Uscita di prova"MsgBox outputArr(2, 1)Fine sottotitolo

Per testare questa funzione, chiama la procedura TestTransposeArray: qui viene creato un array iniziale testArr e outputArr è l'array trasposto finale.

Foglio di lavoroFunzione.Trasposizione

Invece, potresti voler trasporre un array in Excel. Per farlo, puoi usare la funzione Excel Transpose Worksheet.

Questa procedura traspone un array 2D in un intervallo di Excel utilizzando la funzione Transpose Worksheet:

12345678910111213141516171819202122232425 Sub TestTransposeArray_Worksheetfx()Dim maxX quanto più lungo, minX quanto più lungoDim maxY quanto più lungo, minY quanto più lungo'Crea array e assegna valoriDim MyArray(da 1 a 3, da 1 a 2) come varianteMyArray(1, 1) = "Steve"MyArray(1, 2) = "Johnson"MyArray(2, 1) = "Ryan"MyArray(2, 2) = "Johnson"MyArray(3, 1) = "Andrea"MyArray(3, 2) = "Scott""Ottieni limiti superiori e inferiori"maxX = UBound(MyArray, 1)minX = LBound(MyArray, 1)maxY = UBound(MyArray, 2)minY = LBound(MyArray, 2)"Trasponi array in Excel"Intervallo ("a1"). Ridimensiona (maxY - minY + 1, maxX - minX + 1).Valore = _Application.WorksheetFunction.Transpose(MyArray)Fine sottotitolo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave