Hoe een bereik in vba te transponeren (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om een bereik te transponeren met 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
In dit specifieke voorbeeld worden de cellen in het bereik A1:B5 getransponeerd en wordt het getransponeerde bereik weergegeven, beginnend in cel D1 .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: hoe u een bereik in VBA transponeert
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
Stel dat we het bereik A1:B5 willen transponeren en het getransponeerde bereik willen weergeven, beginnend in cel D1 .
We kunnen hiervoor de volgende macro maken:
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
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat het getransponeerde bereik wordt weergegeven vanaf cel D1 .
Met andere woorden, de rijen en kolommen zijn omgedraaid.
Om een ander bereik te transponeren, vervangt u eenvoudigweg A1:B5 in de macro door een ander bereik.
Opmerking : u kunt hier de volledige documentatie voor de VBA Transpose- methode vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: cellen tellen met specifieke tekst
VBA: het aantal rijen binnen bereik tellen
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven