VBA Átültetés
Microsoft Excel felhasználóként gyakran használta az átültetési funkciót, amely lehetővé teszi a sorok és oszlopok cseréjét tömbön. A sorok oszlopokká és oszlopokká konvertálása sorokká változtatja meg az átültetési funkciót az Excel alkalmazásban. A sorok száma oszlopszám lesz, és fordítva. Ez azt jelenti, ha 2 sor és 3 oszlop van a tömbben, az átültetés után 3 sorra és 2 oszlopra tömörül. Ebben az oktatóanyagban áttekintjük a VBA-átültetést, amely lehetővé teszi az Excel-ben használt átültetési módszer automatizálását.
Az Átültetés szintaxisa az Excel VBA-ban
A VBA Transpose szintaxisa a következő:
Hol,
Arg1 : Ez egy kötelező érv, amely nem más, mint egy sejttartomány, amelyet át szeretnénk ültetni (azaz tömb).
A szintaxis első része nem más, mint egy kifejezés, amely alatt az Átültetés funkció használható. Például a WorksheetFunction.
Hogyan kell használni az Excel VBA átültetést?
Megtanuljuk, hogyan kell használni az Átültetést néhány példával az Excel VBA-ban.
Itt töltheti le a VBA Transpose Excel sablont - VBA Transpose Excel Template1. példa - VBA egydimenziós tömb átültetése
Tegyük fel, hogy olyan listákkal dolgozik, amelyek egy egydimenziós tömböt tartalmaznak, mint például egy alkalmazott nevét (“Lalit”, “Sneha”, “Etil”, “John”, “Cory”), és ezt a listát szeretné hogy excel cellába illessze be. Lássuk, hogyan tehetjük ezt.
Kövesse az alábbi lépéseket az Átültetés VBA-ban használatához.
1. lépés: Helyezzen be egy új modult, és határozza meg az új alapelvet a makró létrehozásához a VBA-ban.
Kód:
Sub Trans_ex1 () Sub
2. lépés: Adjon meg egy új változót, amely képes tárolni az egydimenziós tömbjét.
Kód:
Sub Trans_ex1 () Dim Arr1 Variant End Sub
3. lépés: A tömb funkcióval határozza meg a listát tömbként. Ezt a listát szeretné beilleszteni az Excel lapjába.
Kód:
Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Etil", "John", "Cory") Vége Sub
4. lépés: Most használja a Range.Value metódust annak a tartománynak a meghatározásához, amelybe be szeretné illeszteni ezeket az értékeket.
Kód:
Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Etil", "John", "Cory") tartomány ("A1: A5"). Érték = End Sub
5. lépés: Használja az Application.WorksheetFunction.Translate az adott tömbön az Arr1 változó alatt definiált lista átültetéséhez.
Kód:
Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Etil", "John", "Cory") tartomány ("A1: A5"). Érték = Application.WorksheetFunction.Transpose (Arr1 ) Befejezés Sub
Itt definiáltunk egy kódot, amely lehetővé teszi a rendszer számára az Arr1 nevű listamasszában lévő adatok átültetését, majd az aktív munkalapon az A1: A5 cellába tárolását.
6. lépés: A VBE alatt nyomja meg az F5 vagy a Futtatás gombot, hogy futtassa ezt a kódot, és az aktív excel táblázat alatt láthassa a kimenetet.
Láthatja, hogy a lista adott tömbje egy oszlopba kerül és az A1-től A5-ig tárolódik.
2. példa - VBA kétdimenziós tömb átültetése
Tegyük fel, hogy az alábbiak szerint rendelkezik kétdimenziós tömbökkel és fizetésükkel:
Ez egy kétdimenziós adat, hat sorral és két oszloppal. Az átültetés után tömb lenne két sorral és hat oszloppal.
Kövesse az alábbi lépéseket az Átültetés VBA-ban használatához.
1. lépés: Határozzon meg egy alprogramot a makró tárolására.
Kód:
Sub Trans_Ex2 () Sub
2. lépés: Döntse el azt a tartományt, ahova át kívánja helyezni ezeket az adatokat. Meg lehet tenni a Sheets.Range.Value függvény segítségével. Megtakarítanám az átültetett tömböt a D1 – I2 cellába.
Kód:
Sub Trans_Ex2 () lapok ("2. példa"). Tartomány ("D1: I2"). Érték = Sub vége
3. lépés: Használja a MunkalapFunkciót. Átültetés, hogy A1: B6 tömböt rendelhessen a funkció átültetéséhez.
Kód:
Sub Trans_Ex2 () lapok ("2. példa"). Tartomány ("D1: I2"). Érték = WorksheetFunction.Transpose (End Sub
4. lépés: Meg kell határoznunk az Átültetés funkció argumentumát. Szeretnénk átültetni egy sor A1: B6 tömböt. Ezért használja a Range („A1: B6”) érvet.
Kód:
Sub Trans_Ex2 () lapok ("2. példa"). Tartomány ("D1: I2"). Érték = WorksheetFunction.Transpose (Range ("A1: B6")) End Sub
5. lépés: Nyomja meg az F5 vagy a Futtatás gombot a kód futtatásához és a kimenet megtekintéséhez.
Itt az A1: B6 tömb tartományt áthelyezik és a D1: I2 tömb tartományába tárolják a VBA Átültetés funkció segítségével excelben.
3. példa - VBA átültetése egy tömbre speciális beillesztési módszerrel
A tömböt és a beillesztést is átültethetjük, ugyanúgy, mint az Excel programban, az Alt + E + S segítségével. Különböző műveleteket is használhatunk ezen paszta speciális módszerrel.
Vegyük figyelembe ugyanazokat az adatokat, mint amelyeket az előző példában használtunk.
Kövesse az alábbi lépéseket az Átültetés VBA-ban használatához.
1. lépés: Adjon meg egy alprogramot a makró tárolására.
Kód:
Sub Trans_Ex3 () Vége Sub
2. lépés: Definiáljon két új változót: az egyik képes tárolni az adatforrás tömböt (sourceRng), a másik pedig a kimeneti tömb tartományát (targetRng).
Kód:
Sub Trans_Ex3 () tompítva sourceRng mint Excel.Range Dim taretRng mint Excel.Range End Sub
Felhívjuk figyelmét, hogy ezeknek a változóknak a típusa az (Excel.Range). Mert a tömbtartományú adatokat szeretnénk átültetni.
3. lépés: A Sheets.Range funkcióval állítsa be a forrástartományt A1: B6 értékre (Az adatok, amelyeket át akarunk venni).
Kód:
Sub Trans_Ex3 () tompítva sourceRng mint Excel.Range dim dim taretRng mint Excel.Range Állítsa sourceRng = Sheets ("3. példa"). Range ("A1: B6") End Sub
4. lépés: A Sheets.Range funkcióval állítsa be a cél- és céltartományt D1: I2 értékre (azon cellák tartománya, ahol a kimenetet tárolni fogják).
Kód:
Sub Trans_Ex3 () tompított sourceRng mint Excel.Range dim dim taretRng mint Excel.Range Set sourceRng = Sheets ("3. példa"). Range ("A1: B6") Set targetRng = Sheets ("3. példa") Range ( "D1: I2") Sub
5. lépés: Most a Másolás paranccsal másolja ki a forrásadatok tartományát a munkalapjáról.
Kód:
Sub Trans_Ex3 () tompított sourceRng mint Excel.Range dim dim taretRng mint Excel.Range Set sourceRng = Sheets ("3. példa"). Range ("A1: B6") Set targetRng = Sheets ("3. példa") Range ( "D1: I2") sourceRng.Copy End Sub
6. lépés: A PasteSpecial függvényt fogjuk használni a targetRng változón az átültetett kimenet céltartományba (D1: I2) a munkalap mentéséhez.
Kód:
Sub Trans_Ex3 () tompított sourceRng mint Excel.Range dim dim taretRng mint Excel.Range Set sourceRng = Sheets ("3. példa"). Range ("A1: B6") Set targetRng = Sheets ("3. példa") Range ( "D1: I2") sourceRng.Copy targetRng.PasteSpecial Paste: = xlPasteValues, Működés: = xlNone, SkipBlanks: = Hamis, Átültetés: = True End Sub
- Beillesztés : Lehetővé teszi az értékek más formátumba történő beillesztését (például Beillesztés értékként, Képletként, Formátumként stb.). Hasonló az Exceléhez (Alt + E + S-t használunk, hogy különféle beillesztési opciók legyenek). Példánkban úgy állítottuk be, hogy beillesztje értékként.
- Művelet : Különböző műveletek végezhetők, mint például összeadás, kivonás, szorzás, osztás (ugyanúgy, mint az Excelben).
- SkipBlanks : Ha True értékre van állítva, ez a parancs lehetővé teszi az esetleges hiányosságok kihagyását az adatokból, különféle beillesztési speciális műveletek végrehajtása közben. Hamisra állítottuk, az azt jelenti, hogy nem akartuk kihagyni az üres nyomakat.
- Átültetés : Ha True értékre van állítva, akkor lehetővé teszi egy sor tömb átültetését.
7. lépés: Futtassa ezt a kódot az F5 vagy a Futtatás gomb megnyomásával, és nézze meg a kimenetet.
Dolgok, amikre emlékezni kell
- Az egydimenziós tömbön dolgozva mindig az vízszintesnek (Egy sor, több oszlop) kell lennie az átültetési módszer alkalmazásához.
- A VBA Átültetés Excel alkalmazásban történő használatakor kötelező feltölteni a sorok és az oszlopok számát. Ha 3 sor és 5 oszlop van, az átültetés után 5 sor lenne három oszlopgal.
- Az Átültetés módszer általában nem foglalja magában a forrás adatok formázását. Ha ugyanazt a formátumot szeretné alkalmazni, mint a forrásadatokat, akkor vagy manuálisan kell beállítania, vagy az XlPasteFormat speciális beillesztési opció használatával meg tudja őrizni a forrásadatok formátumát a céladatokhoz.
- Az átültetési funkció tömbbe vehető elemeinek száma nem haladhatja meg az 5461-et.
- A tömb nem tartalmazhat olyan tételt / karakterláncot, amelynek hossza meghaladja a 255-et. Ha szerepel, akkor olyan hibákat okoz, mint például 13, Type Mismatch, 5, érvénytelen eljáráshívás vagy argumentum, 1004, alkalmazás által definiált vagy objektum által definiált hiba .
- A forrás tömb nem tartalmazhat null értéket (például “Null”, “# N / A”).
Ajánlott cikkek
Ez egy útmutató a VBA Transponáláshoz. Itt megvitatták az Excel VBA Transpose használatának gyakorlati példákat és letölthető excel sablonokat. Megnézheti más javasolt cikkeinket -
- Útmutató a VBA karakterlánc-funkcióhoz
- Excel TRANSPOSE Formula
- Ismerje meg a VBA esetét az Excel programban
- Távolítsa el (törölje) az üres sorokat az Excel programból