VBA transponeren

We hebben de transponeerfunctie in Excel-werkblad gezien wanneer we een gegevenstabel in het werkblad plakken, wat transponeren doet, is dat het de positie van rijen en kolommen verandert, dwz rijen worden kolommen en kolommen worden rijen in een gegevenstabel, nu omdat het een werkblad is functie in VBA gebruiken we het met de Application.worksheet-methode in VBA.

Hoe te transponeren in VBA?

Het wisselen van rijen en kolommen is een van de datamanipulatietechnieken die bijna alle gebruikers in Excel doen. Het proces van het converteren van horizontale gegevens naar verticale en verticale gegevens naar horizontaal wordt in Excel "Transpose" genoemd. Ik weet zeker dat u bekend moet zijn met transponeren in een gewoon werkblad, in dit artikel laten we u zien hoe u de transponeermethode kunt gebruiken in VBA-codering.

We kunnen op twee manieren transponeren in VBA.

  1. Transponeren met de TRANSPONEREN-formule.
  2. Transponeren met behulp van de speciale methode plakken.

Wanneer we transponeren, wisselen we rijen naar kolommen en kolommen naar rijen. Als de gegevens zich bijvoorbeeld in een 4 x 3-array bevinden, worden het 3 x 4-array.

Laten we enkele voorbeelden bekijken om kolom naar rij in VBA te transponeren.

# 1 - VBA-transponering met behulp van TRANSPOSE-formule

Net als hoe we TRANSPOSE in Excel op dezelfde manier gebruiken, kunnen we de TRANSPOSE-formule ook in VBA gebruiken. We hebben geen TRANSPONEREN-formule in VBA, dus we moeten deze gebruiken onder de klasse Worksheet Function.

Kijk voor een voorbeeld naar de onderstaande gegevensafbeelding.

We zullen proberen deze reeks waarden te transponeren. Volg de onderstaande stappen om de data te transponeren.

Stap 1: Start de subprocedure

Code:

 Sub Transpose_Example1 () End Sub 

Stap 2: Eerst moeten we beslissen waar we de gegevens gaan transponeren. Hierin heb ik ervoor gekozen om van cel D1 naar H2 te transponeren. Voer dus de VBA-code in als Bereik ("D1: H2"). Waarde =

Code:

 Sub Transpose_Example1 () Bereik ("D1: H2"). Waarde = End Sub 

Stap 3: Nu hebben we in het bovengenoemde bereik de waarde van bereik A1 tot B5 nodig. Om bij deze open klasse "Werkbladfunctie" te komen, selecteert u de formule "Transponeren".

Stap 4: Geef in Arg 1 het gegevensbronbereik op, dwz Bereik ("A1: D5") .

Code:

 Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub 

Ok, we zijn klaar met de codering van de TRANSPOSE-formule. Voer nu de code uit om het resultaat te zien in het celbereik van D1 tot H2.

Zoals we de bovenstaande afbeelding hebben gezien, is het celbereik van kolommen naar rijen geconverteerd.

# 2 - VBA-transponering met behulp van de speciale methode plakken

We kunnen ook transponeren met de methode Plakken speciaal. Overweeg ook dezelfde gegevens voor dit voorbeeld.

Het eerste dat we moeten doen om te transponeren, is de gegevens kopiëren. Schrijf de code dus als Bereik ("A1: B5") Kopieer

Code:

 Sub Transpose_Example2 () Bereik ("A1: B5") Kopieer End Sub 

Het volgende is dat we moeten beslissen waar we de gegevens gaan plakken. In dit geval heb ik D1 gekozen als de gewenste bestemmingscel.

Code:

Sub Transpose_Example2 () Bereik ("A1: B5"). Kopieerbereik ("D1"). Einde Sub

Zodra de gewenste bestemmingscel is geselecteerd, moeten we "Plakken speciale methode" selecteren.

Met plakken speciaal kunnen we alle acties uitvoeren die we hebben met gewone speciale methoden voor plakken in een werkblad.

Negeer alle parameters en selecteer de laatste parameter, dwz Transpose, en maak dit als TRUE.

Code:

 Sub Transpose_Example2 () Bereik ("A1: B5"). Kopieerbereik ("D1"). PasteSpecial Transpose: = True End Sub 

Dit zal ook de gegevens transponeren zoals bij de vorige methode.

Op deze manier kunnen we de TRANSPONEREN-formule of Plakken speciaal-methode gebruiken om de gegevens te transponeren om rijen naar kolommen en kolommen naar rijen te schakelen.

Dingen om te onthouden

  • Als we de werkbladfunctie TRANSPONEREN gebruiken, is het verplicht om een ​​aantal rijen en kolommen te berekenen om de gegevens te transponeren. Als we 5 rijen en 3 kolommen hebben, wordt het tijdens het transponeren 3 rijen en 5 kolommen.
  • Als u dezelfde opmaak wilt tijdens het gebruik van speciale plakken, moet u het argument Type plakken gebruiken als "xlPasteFormats"

U kunt deze VBA Transpose Excel-sjabloon vanaf hier downloaden - VBA Transpose Excel-sjabloon