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 v bežnom pracovnom liste určite poznáte. V tomto článku si ukážeme, ako používať metódu transpozície v kódovaní VBA.
Môžeme transponovať do VBA pomocou dvoch metód.
- Transponujte pomocou vzoru TRANSPOSE.
- 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, potom sa stanú 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 podobne používame TRANSPOSE v programe Excel, 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: Najskôr 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 Rozsah („A1: B5“). Skopírujte
Kód:
Sub Transpose_Example2 () Range ("A1: B5"). Kopírovať 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

Po vybratí požadovanej cieľovej bunky musíme zvoliť možnosť „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í príkazu paste special, musíte použiť argument Typ prilepenia ako „xlPasteFormats“.
Túto šablónu VBA Transpose Excel si môžete stiahnuť odtiaľto - Šablóna VBA Transpose Excel.