Come trasporre un intervallo in vba (con esempio)
È possibile utilizzare la seguente sintassi di base per trasporre un intervallo utilizzando VBA:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
Questo particolare esempio trasporrà le celle nell’intervallo A1:B5 e visualizzerà l’intervallo trasposto a partire dalla cella D1 .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come trasporre un intervallo in VBA
Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:
Diciamo che vogliamo trasporre l’intervallo A1:B5 e visualizzare l’intervallo trasposto a partire dalla cella D1 .
Per fare ciò possiamo creare la seguente macro:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che l’intervallo trasposto viene visualizzato a partire dalla cella D1 .
In altre parole, le righe e le colonne sono invertite.
Per trasporre un intervallo diverso, sostituisci semplicemente A1:B5 nella macro con un intervallo diverso.
Nota : qui è possibile trovare la documentazione completa per il metodo VBA Transpose .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come contare le celle con testo specifico
VBA: come contare il numero di righe nell’intervallo
VBA: come scrivere le funzioni COUNTIF e COUNTIFS