Láttuk a transzponálás funkciót az excel munkalapon, amikor bármilyen adattáblát beillesztünk a munkalapba, ami azt jelenti, hogy megváltoztatja a sorok és oszlopok helyzetét, azaz a sorok oszlopokká válnak, és az oszlopok sorokká válnak az adattáblákban, mivel ez most munkalap funkciót a VBA-ban az Application.worksheet módszerrel használjuk a VBA-ban.
Hogyan lehet átültetni a VBA-ba?
A sorok és oszlopok váltása az egyik adatkezelési technika, amelyet szinte az összes felhasználó végez az excelben. A vízszintes adatok vertikális és vertikális adatokká horizontálissá konvertálásának folyamatát az excelben „Transpose” -nak nevezzük. Biztos vagyok benne, hogy ismernie kell az átültetést egy szokásos munkalapon, ebben a cikkben megmutatjuk, hogyan kell használni az átültetési módszert a VBA kódolásban.
Két módszerrel ültethetjük át a VBA-ban.
- Átültetés a TRANSPOSE Formula használatával.
- Átültetés speciális beillesztési módszerrel.
Az átültetés során sorokat cserélünk oszlopokra és oszlopokat sorokra. Például, ha az adatok 4 X 3 tömbben vannak, akkor 3 X 4 tömb lesz belőle.
Lássunk néhány példát az oszlopok sorokba való átültetésére a VBA-ban.
# 1 - VBA átültetés a TRANSPOSE képlet használatával
Hasonlóan a TRANSPOSE használatához az excelben, hasonlóan használhatjuk a TRANSPOSE képletet a VBA-ban is. A VBA-ban nincs TRANSPOSE képlet, ezért a Worksheet Function osztály alatt kell használnunk.
Például nézze meg az alábbi adatképet.
Megpróbáljuk átültetni ezt az értéktömböt. Az adatok átültetéséhez kövesse az alábbi lépéseket.
1. lépés: Indítsa el az alfolyamatot
Kód:
Sub Transpose_Példa1 () End Sub
2. lépés: Először el kell döntenünk, hová fogjuk átültetni az adatokat. Ebben a D1 cellából a H2-be történő transzponálást választottam. Tehát írja be a VBA kódot tartományként („D1: H2”)
Kód:
Sub Transpose_Példa1 () Tartomány ("D1: H2"). Érték = End Sub
3. lépés: Most a fent említett tartományban szükségünk van az A1 – B5 tartomány értékére. Ehhez a nyitott „Worksheet Function” osztályhoz való hozzáféréshez válassza ki az „Transpose” képletet.
4. lépés: Az Arg 1-ben adja meg az adatforrás-tartományt, azaz a Tartományt („A1: D5”) .
Kód:
Sub Transpose_Example1 () tartomány ("D1: H2"). Érték = WorksheetFunction.Transpose (tartomány ("A1: D5")) End Sub
Ok, elkészültünk a TRANSPOSE képletek kódolásával. Most futtassa a kódot, hogy megnézze az eredményt a D1 – H2 cellatartományban.
Amint a fenti képet láttuk, a cellák tartományát oszlopokból sorokká alakította át.
# 2 - VBA átültetés speciális beillesztési módszerrel
Átültethetjük a Paste Special módszerrel is. Vegye figyelembe ugyanezeket az adatokat ehhez a példához is.
Az első dolog, amit át kell ültetnünk, az adatok másolása. Írja be a kódot Range („A1: B5”) néven
Kód:
Sub Transpose_Example2 () tartomány ("A1: B5"). Másolás End Sub
A következő dolog az, hogy el kell döntenünk, hova fogjuk beilleszteni az adatokat. Ebben az esetben a D1-et választottam a kívánt cél cellának.
Kód:
Sub Transpose_Példa2 () Tartomány ("A1: B5"). Másolási tartomány ("D1"). End Sub
Miután kiválasztotta a kívánt cél cellát, ki kell választanunk a „Speciális módszer beillesztése” lehetőséget.
A paste special segítségével az összes műveletet elvégezhetjük a szokásos paste speciális módszerekkel egy munkalapon.
Hagyja figyelmen kívül az összes paramétert, és válassza ki az utolsó paramétert, azaz Átültetés, és tegye ezt igaznak.
Kód:
Sub Transpose_Example2 () tartomány ("A1: B5"). Másolási tartomány ("D1"). PasteSpecial Transpose: = True End Sub
Ez az adatokat az előző módszerhez hasonlóan transzponálja.
Így használhatjuk a TRANSPOSE képletet vagy a Paste Special metódust az adatok átültetéséhez a sorok oszlopokra és az oszlopok sorokra váltásához.
Dolgok, amikre emlékezni kell
- Ha a TRANSPOSE munkalapfüggvényt használjuk, az adatok átültetéséhez számos sort és oszlopot kell kiszámítani. Ha 5 sorunk és 3 oszlopunk van, akkor az átültetés során 3 sor és 5 oszlop lesz.
- Ha ugyanazt a formázást szeretné használni a special paste beírásakor, akkor a Paste Type argumentumot „xlPasteFormats” néven kell használnia
Ezt a VBA Transpose Excel sablont innen töltheti le - VBA Transpose Excel Template