Transpozícia VBA (krok za krokom) Najlepšie 2 spôsoby transpozície vo VBA

Funkciu transpozície sme videli v pracovnom hárku programu Excel, keď do tabuľky prilepíme ľubovoľnú údajovú tabuľku, čo však transpozícia robí, že zmení pozíciu riadkov a stĺpcov, tj z riadkov sa stanú stĺpce a zo stĺpcov sa stanú riadky v údajovej tabuľke, pretože teraz ide o pracovný hárok. funkciu vo VBA používame s metódou Application.worksheet vo VBA.

Ako transponovať do VBA?

Prepínanie riadkov a stĺpcov je jednou z techník manipulácie s dátami, ktorú takmer všetci používatelia robia v programe Excel. Proces prevodu horizontálnych údajov na vertikálne a vertikálnych údajov na horizontálne sa v programe Excel označuje ako „Transpose“. Som si istý, že Transpozíciu musíte poznať v bežnom pracovnom liste, v tomto článku vám ukážeme, ako používať metódu transpozície v kódovaní VBA.

Môžeme transponovať do VBA pomocou dvoch metód.

  1. Transponujte pomocou vzoru TRANSPOSE.
  2. Transponujte pomocou špeciálnej metódy Prilepiť.

Keď transponujeme, vymieňame riadky za stĺpce a stĺpce za riadky. Napríklad, ak sú údaje v poli 4 x 3, stanú sa poľom 3 x 4.

Pozrime sa na niekoľko príkladov na prevedenie stĺpca na riadok vo VBA.

# 1 - Transpozícia VBA pomocou formulára TRANSPOSE

Podobne, ako používame TRANSPOSE v programe Excel, podobne môžeme použiť vzorec TRANSPOSE aj vo VBA. Vo VBA nemáme vzorec TRANSPOSE, takže ho musíme použiť v triede funkcií pracovného hárka.

Napríklad si pozrite nasledujúci dátový obrázok.

Pokúsime sa transponovať toto pole hodnôt. Pri transpozícii údajov postupujte podľa nasledujúcich pokynov.

Krok 1: Spustite podproces

Kód:

 Sub Transpose_Example1 () End Sub 

Krok 2: Najprv sa musíme rozhodnúť, kam budeme údaje transponovať. V tomto som sa rozhodol transponovať z bunky D1 do H2. Takže zadajte kód VBA ako Rozsah („D1: H2“). Hodnota =

Kód:

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

Krok 3: Teraz vo vyššie uvedenom rozsahu potrebujeme hodnotu rozsahu A1 až B5. Aby ste sa dostali k tejto otvorenej triede „Funkcia pracovného listu“, vyberte vzorec „Transponovať“.

Krok 4: V Arg 1 zadajte rozsah zdroja údajov, tj rozsah („A1: D5“) .

Kód:

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

Dobre, skončili sme s kódovaním vzorca TRANSPOSE. Teraz spustite kód, aby ste videli výsledok v rozsahu buniek D1 až H2.

Ako sme videli na obrázku vyššie, konvertoval rozsah buniek zo stĺpcov na riadky.

# 2 - Transpozícia VBA pomocou špeciálnej metódy Prilepiť

Môžeme tiež transponovať pomocou metódy Prilepiť špeciálne. Zvážte rovnaké údaje aj pre tento príklad.

Prvá vec, ktorú musíme urobiť, aby sme transponovali, je skopírovať údaje. Takže napíšte kód ako Range („A1: B5“). Skopírujte

Kód:

 Sub Transpose_Example2 () Range ("A1: B5"). Skopírujte End Sub 

Ďalšia vec je, že sa musíme rozhodnúť, kam vložíme údaje. V tomto prípade som vybral D1 ako požadovanú cieľovú bunku.

Kód:

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

Keď je vybratá požadovaná cieľová bunka, musíme zvoliť „Prilepiť špeciálnu metódu“.

Pomocou špeciálneho vkladania môžeme vykonávať všetky akcie, ktoré máme, pomocou bežných metód špeciálneho vkladania v hárku.

Ignorujte všetky parametre a vyberte posledný parameter, tj Transpose, a nastavte ho na hodnotu PRAVDA.

Kód:

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

Týmto sa tiež transponujú údaje ako pri predchádzajúcej metóde.

Takto môžeme použiť vzorec TRANSPÓZIA alebo metódu Prilepiť špeciálne na transpozíciu údajov na prepnutie riadkov do stĺpcov a stĺpcov do riadkov.

Na čo treba pamätať

  • Ak používame funkciu pracovného listu TRANSPOZÍCIA, je potrebné vypočítať počet riadkov a stĺpcov na transpozíciu údajov. Ak máme 5 riadkov a 3 stĺpce, potom sa pri transpozícii stane 3 riadkami a 5 stĺpcami.
  • Ak chcete rovnaké formátovanie pri použití paste special, musíte použiť argument Paste Type ako „xlPasteFormats“

Túto šablónu VBA Transpose Excel si môžete stiahnuť tu - Šablóna VBA Transpose Excel