VBA Transponere (trin for trin) | Top 2 metoder til transponering i VBA

Vi har set transponeringsfunktion i excel-regneark, når vi indsætter en hvilken som helst datatabel til regnearket, hvad transponering gør er, at det ændrer placeringen af ​​rækker og kolonner, dvs. at rækker bliver kolonner og kolonner bliver rækker i en datatabel, nu da det er et regneark funktion i VBA bruger vi den med Application.worksheet-metoden i VBA.

Hvordan transponeres i VBA?

Skift af rækker og kolonner er en af ​​datamanipulationsteknikkerne, næsten alle brugerne udmærker sig. Processen med at konvertere vandrette data til lodrette og lodrette data til vandrette kaldes som "Transponere" i Excel. Jeg er sikker på, at du skal være fortrolig med transponering i et almindeligt regneark. I denne artikel viser vi dig, hvordan du bruger transponeringsmetoden til VBA-kodning.

Vi kan transponere i VBA ved hjælp af to metoder.

  1. Transponere ved hjælp af TRANSPOSE-formel.
  2. Transponere ved hjælp af Indsæt speciel metode.

Når vi transponerer, bytter vi rækker til kolonner og kolonner til rækker. For eksempel, hvis dataene er i 4 X 3 array, bliver de 3 X 4 array.

Lad os se nogle eksempler til transponering af kolonne til række i VBA.

# 1 - VBA-transponering ved hjælp af TRANSPOSE-formel

Ligesom hvordan vi bruger TRANSPOSE i Excel, kan vi også bruge TRANSPOSE-formel i VBA. Vi har ikke en TRANSPOSE-formel i VBA, så vi skal bruge den under regnearkfunktionsklassen.

For eksempel kan du se nedenstående databillede.

Vi vil forsøge at transponere denne matrix af værdier. Følg nedenstående trin for at transponere dataene.

Trin 1: Start delproceduren

Kode:

 Sub Transpose_Example1 () Afslut Sub 

Trin 2: Først skal vi beslutte, hvor vi skal transponere dataene. I dette har jeg valgt at transponere fra celle D1 til H2. Så indtast VBA-koden som Range (“D1: H2”). Værdi =

Kode:

 Sub Transpose_Example1 () Range ("D1: H2"). Værdi = End Sub 

Trin 3: Nu i det ovennævnte område har vi brug for værdien for området A1 til B5. For at nå frem til denne åbne klasse "Arbejdsarkfunktion" og vælg formlen "Transponer".

Trin 4: I Arg 1 skal du levere datakildeområdet dvs. Range (“A1: D5”) .

Kode:

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

Okay, vi er færdige med TRANSPOSE-formelkodning. Kør nu koden for at se resultatet i cellerne D1 til H2.

Som vi har set ovenstående billede har det konverteret celleområdet fra kolonner til rækker.

# 2 - VBA Transponere ved hjælp af Paste Special Method

Vi kan også transponere ved hjælp af Paste Special-metoden. Overvej også de samme data for dette eksempel.

Den første ting, vi skal gøre for at transponere, er at kopiere dataene. Så skriv koden som Range (“A1: B5”)

Kode:

 Sub Transpose_Example2 () Range ("A1: B5"). Kopi End Sub 

Den næste ting er, at vi skal beslutte, hvor vi skal indsætte dataene. I dette tilfælde har jeg valgt D1 som den ønskede destinationscelle.

Kode:

Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). Afslut sub

Når den ønskede destinationscelle er valgt, skal vi vælge "Indsæt speciel metode".

Med indsæt special kan vi udføre alle de handlinger, vi har med regelmæssige indsæt specialmetoder i et regneark.

Ignorer alle parametre, og vælg den sidste parameter, dvs. transponér, og angiv denne som SAND.

Kode:

 Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). PasteSpecial Transpose: = True End Sub 

Dette vil også transponere dataene som den foregående metode.

På denne måde kan vi bruge TRANSPOSE-formlen eller Paste Special-metoden til at transponere dataene for at skifte rækker til kolonner og kolonner til rækker.

Ting at huske

  • Hvis vi bruger funktionen TRANSPOSE regneark, er det obligatorisk at beregne et antal rækker og kolonner for at transponere dataene. Hvis vi har 5 rækker og 3 kolonner, bliver det 3 rækker og 5 kolonner under transponering.
  • Hvis du vil have den samme formatering, mens du bruger paste special, skal du bruge argumentet Paste Type som "xlPasteFormats"

Du kan downloade denne VBA Transpose Excel-skabelon herfra - VBA Transpose Excel Template