VBA transponera (steg för steg) - Topp 2 metoder att transponera i VBA

Innehållsförteckning

Vi har sett transponeringsfunktion i Excel-kalkylbladet när vi klistrar in en datatabell i kalkylbladet. Det som transponerar gör är att det ändrar positionen för rader och kolumner, dvs rader blir kolumner och kolumner blir rader i en datatabell, nu eftersom det är ett kalkylblad funktion i VBA använder vi den med Application.worksheet-metoden i VBA.

Hur transponerar man i VBA?

Att byta rader och kolumner är en av datainformationsteknikerna som nästan alla användare gör i Excel. Processen för att konvertera horisontell data till vertikal och vertikal data till horisontell kallas "Transponera" i Excel. Jag är säker på att du måste känna till transponering i ett vanligt kalkylblad. I den här artikeln visar vi dig hur du använder transponeringsmetoden i VBA-kodning.

Vi kan transponera i VBA med två metoder.

  1. Transponera med TRANSPOSE Formula.
  2. Transponera med hjälp av Paste Special Method.

När vi transponerar byter vi rader till kolumner och kolumner till rader. Till exempel, om data finns i en 4 X 3-array, blir den en 3 X 4-array.

Låt oss se några exempel för att transponera kolumn till rad i VBA.

# 1 - VBA Transponera med TRANSPOSE Formula

Liksom hur vi använder TRANSPOSE i excel på samma sätt kan vi också använda TRANSPOSE-formeln i VBA. Vi har inte en TRANSPOSE-formel i VBA, så vi måste använda den under klassen Worksheet Function.

Titta till exempel på databilden nedan.

Vi kommer att försöka transponera denna mängd värden. Följ stegen nedan för att transponera data.

Steg 1: Starta delproceduren.

Koda:

Sub Transpose_Example1 () Avsluta Sub

Steg 2: Först måste vi bestämma vart vi ska överföra informationen. I detta har jag valt att transponera från cell D1 till H2. Ange så VBA-koden som Range (“D1: H2”). Värde =

Koda:

Sub Transpose_Example1 () Range ("D1: H2"). Värde = End Sub

Steg 3: Nu, i ovannämnda intervall, behöver vi värdet för intervallet A1 till B5. För att komma till den här öppna klassen "Kalkylbladfunktion" och välj formeln "Transponera".

Steg 4: I Arg 1, tillhandahålla datakällan området, dvs, Range ( ”A1: D5”) .

Koda:

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

Okej, vi är klara med TRANSPOSE-formelkodning. Kör nu koden för att se resultatet i cellerna D1 till H2.

Som vi har sett i bilden ovan har den omvandlat cellområdet från kolumner till rader.

# 2 - VBA Transponera med Paste Special Method

Vi kan också transponera med Paste Special-metoden. Tänk på samma data för detta exempel också.

Det första vi behöver göra för att transponera är att kopiera data. Så skriv koden som Range (“A1: B5”). Kopiera

Koda:

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

Nästa sak är att vi måste bestämma var vi ska klistra in data. I det här fallet har jag valt D1 som önskad målcell.

Koda:

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

När önskad målcell har valts måste vi välja "Klistra in specialmetod".

Med klistra in special kan vi utföra alla åtgärder vi har med vanliga klistra in specialmetoder i ett kalkylblad.

Ignorera alla parametrar och välj den sista parametern, dvs Transponera, och gör detta som SANT.

Koda:

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

Detta kommer också att transponera data som den tidigare metoden.

Så här kan vi använda TRANSPOSE-formeln eller Paste Special-metoden för att transponera data för att byta rader till kolumner och kolumner till rader.

Saker att komma ihåg

  • Om vi ​​använder TRANSPOSE-kalkylbladets funktion är det obligatoriskt att beräkna ett antal rader och kolumner för att transponera data. Om vi ​​har 5 rader och 3 kolumner blir det 3 rader och 5 kolumner när vi transponerar.
  • Om du vill ha samma formatering när du använder klistra in special måste du använda argumentet Klistra in som "xlPasteFormats."

Du kan ladda ner VBA Transpose Excel-mall härifrån - VBA Transpose Excel Template.

Intressanta artiklar...