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.
- Transponere ved hjelp av TRANSPOSE-formel.
- 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 en 4 X 3-matrise, blir de en 3 X 4-matrise.
La oss se noen eksempler for å transponere kolonne til rad i VBA.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba.jpg.webp)
# 1 - VBA Transponere ved hjelp av TRANSPOSE Formula
Som hvordan vi bruker TRANSPOSE i excel på samme måte, kan vi også bruke TRANSPOSE-formelen i VBA. Vi har ikke en TRANSPOSE-formel i VBA, så vi må bruke den under klassen Arbeidsarkfunksjon.
Se for eksempel på databildet nedenfor.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_2.jpg.webp)
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
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_3.jpg.webp)
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
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_4.jpg.webp)
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 "Transponer" -formelen.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_5.jpg.webp)
Trinn 4: I Arg 1, oppgi datakildeområdet, dvs. Område (“A1: D5”) .
Kode:
Sub Transpose_Example1 () Range ("D1: H2"). Verdi = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_6.jpg.webp)
Ok, vi er ferdige med TRANSPOSE-formelkoding. Kjør nå koden for å se resultatet i D1 til H2-området av celler.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba.gif)
Som vi har sett i 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.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_2.jpg.webp)
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
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_7.jpg.webp)
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
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_8.jpg.webp)
Når ønsket destinasjonscelle er valgt, må vi velge "Lim inn spesiell metode."
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_9.jpg.webp)
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. Transponere, og gjør dette som SANT.
Kode:
Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). PasteSpecial Transpose: = True End Sub
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_10.jpg.webp)
Dette vil også transponere dataene som den forrige metoden.
![](https://cdn.know-base.net/1851219/vba_transpose_step_by_step_top_2_methods_to_transpose_in_vba_2.gif)
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.