VBA Transponere (trinnvis) | Topp 2 metoder for å transponere i VBA

Vi har sett transponeringsfunksjon i excel-regneark når vi limer inn en hvilken som helst datatabell i regnearket. Det transponere gjør er at den endrer posisjonen til rader og kolonner, dvs. at rader blir kolonner og kolonner blir rader i en datatabell, nå siden det er et regneark funksjon i VBA bruker vi den med Application.worksheet-metoden i VBA.

Hvordan transponere i VBA?

Å bytte rad og kolonne er en av datamanipuleringsteknikkene nesten alle brukerne gjør i excel. Prosessen med å konvertere horisontale data til vertikale og vertikale data til horisontale kalles “Transponere” i Excel. Jeg er sikker på at du må være kjent med Transponering i et vanlig regneark. I denne artikkelen vil vi vise deg hvordan du bruker transponeringsmetoden i VBA-koding.

Vi kan transponere i VBA ved hjelp av to metoder.

  1. Transponere ved hjelp av TRANSPOSE-formel.
  2. Transponere ved hjelp av Lim inn spesiell metode.

Når vi transponerer bytter vi rader til kolonner og kolonner til rader. For eksempel, hvis dataene er i 4 X 3 array, blir det 3 X 4 array.

La oss se noen eksempler for å transponere kolonne til rad i VBA.

# 1 - VBA Transponere ved hjelp av TRANSPOSE Formula

Som hvordan vi bruker TRANSPOSE i excel, kan vi også bruke TRANSPOSE-formel i VBA. Vi har ikke en TRANSPOSE-formel i VBA, så vi må bruke den under regnearkfunksjonsklassen.

For et eksempel se på databildet nedenfor.

Vi vil prøve å transponere denne matrisen av verdier. Følg trinnene nedenfor for å transponere dataene.

Trinn 1: Start delprosedyren

Kode:

 Sub Transpose_Example1 () End Sub 

Trinn 2: Først må vi bestemme hvor vi skal transponere dataene. I dette har jeg valgt å transponere fra celle D1 til H2. Så skriv inn VBA-koden som Range (“D1: H2”). Verdi =

Kode:

 Sub Transpose_Example1 () Range ("D1: H2"). Verdi = End Sub 

Trinn 3: Nå i det ovennevnte området trenger vi verdien av området A1 til B5. For å komme til denne åpne klassen "Arbeidsarkfunksjon" og velg formelen "Transponere".

Trinn 4: I Arg 1 leverer du datakildeområdet dvs. Område (“A1: D5”) .

Kode:

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

Ok, vi er ferdige med TRANSPOSE-formelkoding. Kjør nå koden for å se resultatet i D1 til H2-området av celler.

Som vi har sett bildet ovenfor, har det konvertert celleområdet fra kolonner til rader.

# 2 - VBA Transponere ved hjelp av Lim inn spesiell metode

Vi kan også transponere ved hjelp av Paste Special-metoden. Vurder også de samme dataene for dette eksemplet.

Det første vi må gjøre for å transponere er å kopiere dataene. Så skriv koden som Range (“A1: B5”)

Kode:

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

Den neste tingen er at vi må bestemme hvor vi skal lime inn dataene. I dette tilfellet har jeg valgt D1 som ønsket destinasjonscelle.

Kode:

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

Når ønsket destinasjonscelle er valgt, må vi velge "Lim inn spesiell metode".

Med lim spesiell kan vi utføre alle handlingene vi har med vanlige lim spesielle metoder i et regneark.

Ignorer alle parametrene og velg den siste parameteren, dvs. Transponer og gjør dette som SANT.

Kode:

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

Dette vil også transponere dataene som den forrige metoden.

På denne måten kan vi bruke TRANSPOSE-formelen eller Lim inn spesiell metode for å transponere dataene for å bytte rader til kolonner og kolonner til rader.

Ting å huske

  • Hvis vi bruker TRANSPOSE-regnearkfunksjonen, er det obligatorisk å beregne et antall rader og kolonner for å transponere dataene. Hvis vi har 5 rader og 3 kolonner, blir det 3 rader og 5 kolonner under transponering.
  • Hvis du vil ha samme formatering mens du bruker limespesial, må du bruke argumentet Lim inn type som "xlPasteFormats"

Du kan laste ned denne VBA Transpose Excel-malen herfra - VBA Transpose Excel Template