Transpozice VBA (krok za krokem) | Nejlepší 2 způsoby transpozice ve VBA

Viděli jsme funkci transpozice v excelovém listu, když jsme do listu vložili libovolnou datovou tabulku, transpozice dělá to, že mění pozici řádků a sloupců, tj. Řádky se stávají sloupci a sloupce se stávají řádky v datové tabulce, nyní, protože se jedná o list funkci ve VBA používáme s metodou Application.worksheet ve VBA.

Jak transponovat do VBA?

Přepínání řádků a sloupců je jednou z technik manipulace s daty, kterou téměř všichni uživatelé dělají v aplikaci Excel. Proces převodu vodorovných dat na svislá a svislých dat na vodorovná se v aplikaci Excel označuje jako „Transpose“. Jsem si jistý, že musíte být obeznámeni s Transpozicí v běžném listu, v tomto článku vám ukážeme, jak používat metodu transpozice v kódování VBA.

Můžeme provést ve VBA pomocí dvou metod.

  1. Transponujte pomocí TRANSPOSE vzorce.
  2. Transponujte pomocí speciální metody Vložit.

Když provádíme transpozici, vyměňujeme řádky za sloupce a sloupce za řádky. Například pokud jsou data v poli 4 X 3, stane se z něj pole 3 X 4.

Podívejme se na několik příkladů k převedení sloupce na řádek ve VBA.

# 1 - VBA Transpose pomocí TRANSPOSE Formula

Stejně jako používáme TRANSPOSE v aplikaci Excel podobně můžeme použít TRANSPOSE vzorec i ve VBA. Ve VBA nemáme vzorec TRANSPOSE, takže musíme použít ve třídě Worksheet Function.

Například se podívejte na níže uvedený datový obrázek.

Pokusíme se transponovat toto pole hodnot. Při transpozici dat postupujte podle následujících pokynů.

Krok 1: Spusťte podproces

Kód:

 Sub Transpose_Example1 () End Sub 

Krok 2: Nejprve se musíme rozhodnout, kam budeme data transponovat. V tomto jsem se rozhodl transponovat z buňky D1 do H2. Zadejte tedy kód VBA jako Rozsah („D1: H2“). Hodnota =

Kód:

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

Krok 3: Nyní ve výše uvedeném rozsahu potřebujeme hodnotu rozsahu A1 až B5. Chcete-li se dostat k této otevřené třídě „Funkce listu“ a vybrat vzorec „Transponovat“.

Krok 4: V Arg 1 zadejte rozsah zdroje dat, tj. Rozsah („A1: D5“) .

Kód:

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

Dobře, jsme hotovi s kódováním vzorců TRANSPOSE. Nyní spusťte kód a podívejte se na výsledek v rozsahu buněk D1 až H2.

Jak jsme viděli na obrázku výše, převedl rozsah buněk ze sloupců na řádky.

# 2 - Transpozice VBA pomocí speciální metody Vložit

Můžeme také provést transpozici pomocí metody Paste Special. Zvažte stejná data i pro tento příklad.

První věcí, kterou musíme udělat, je zkopírovat data. Takže napište kód jako Range („A1: B5“)

Kód:

 Sub Transpose_Example2 () Range ("A1: B5"). Kopírovat End Sub 

Další věc je, že se musíme rozhodnout, kam vložíme data. V tomto případě jsem vybral D1 jako požadovanou cílovou buňku.

Kód:

Rozsah Sub Transpose_Example2 () ("A1: B5"). Rozsah kopírování ("D1"). End Sub

Jakmile je vybrána požadovaná cílová buňka, musíme vybrat „Vložit speciální metodu“.

Pomocí speciální pasty můžeme provádět všechny akce, které máme, pomocí běžných speciálních metod vložení do listu.

Ignorujte všechny parametry a vyberte poslední parametr, tj. Transpose, a proveďte toto jako PRAVDA.

Kód:

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

Tím se také transponují data jako předchozí metoda.

Takto můžeme použít vzorec TRANSPOSE nebo metodu Paste Special k transpozici dat k přepnutí řádků na sloupce a sloupců na řádky.

Věci k zapamatování

  • Pokud používáme funkci listu TRANSPOSE, je nutné vypočítat počet řádků a sloupců k provedení dat. Pokud máme 5 řádků a 3 sloupce, pak se při transpozici stanou 3 řádky a 5 sloupci.
  • Pokud chcete stejné formátování při použití paste special, musíte použít argument Paste Type jako „xlPasteFormats“

Tuto šablonu aplikace VBA Transpose Excel si můžete stáhnout odtud - Šablona aplikace VBA Transpose Excel