Ez az oktatóanyag megmutatja, hogyan használhatja a PasteSpecial programot a VBA -ban, hogy csak bizonyos cellatulajdonságokat illesszen be (pl. Értékek, formátumok)
Az Excelben egy cella másolásakor és beillesztésekor másolja és illessze be a cella összes tulajdonságát: értékeket, formátumokat, képleteket, számformázást, szegélyeket stb.:
Ehelyett „Speciális beillesztéssel” csak bizonyos cellatulajdonságokat illeszthet be. Az Excelben a Speciális beillesztés menü a CTRL + ALT + V billentyűkóddal érhető el (cella másolása után):
Itt láthatja a cellatulajdonságok összes kombinációját, amelyeket beilleszthet.
Ha makrót rögzít a Speciális beillesztés menü használata közben, akkor egyszerűen használhatja a létrehozott kódot. Gyakran ez a legegyszerűbb módja a VBA speciális beillesztéséhez.
Értékek beillesztése
A Beillesztési értékek csak beilleszti a cella „értékét”. Ha a cella képletet tartalmazott, a Beillesztési értékek beilleszti a képlet eredményét.
Ez a kód másolja és illessze be az értékeket egyetlen cellához ugyanazon a munkalapon:
12 | Tartomány ("A1"). MásolásTartomány ("B1"). PasteSpecial Paste: = xlPasteValues |
Másolás és értékbeillesztés különböző lapokra
Ez a példa másolja és illessze be az értékeket az egyes cellákhoz különböző munkalapokon
12 | Táblázatok ("Sheet1"). Tartomány ("A1"). MásolatTáblázatok ("Sheet2"). Tartomány ("B1"). PasteSpecial Paste: = xlPasteValues |
Ezek a példák értékeket másolnak és illesztenek be egy cellatartományhoz:
Másolási és értékbeillesztési tartományok
12 | Tartomány ("A1: B3"). MásolatTartomány ("C1"). PasteSpecial Paste: = xlPasteValues |
Oszlopok másolása és beillesztése
12 | Oszlopok ("A"). MásolatOszlopok ("B"). PasteSpecial Paste: = xlPasteValues |
Sorok másolása és értékbeillesztése
12 | Sorok (1). MásolásSorok (2). PasteSpecial Paste: = xlPasteValues |
Értékek és számformátumok beillesztése
Az Értékek beillesztése csak a cella értékét illeszti be. Nincs beillesztve formázás, beleértve a számformázást sem.
Gyakran az értékek beillesztésekor valószínűleg a számformázást is be kell illesztenie, hogy az értékek formázottak maradjanak. Nézzünk egy példát.
Itt értékeljük a százalékot tartalmazó cella beillesztését:
12 | Táblázatok ("Sheet1"). Oszlopok ("D"). MásolatTáblázatok ("Sheet2"). Oszlopok ("B"). PasteSpecial Paste: = xlPasteValues |
Figyelje meg, hogy a százalékos számformázás elvész, és ehelyett hanyag tizedes érték jelenik meg.
Ehelyett használjuk a Beillesztés értékek és számok formátumokat:
12 | Táblázatok ("Sheet1"). Oszlopok ("D"). MásolatTáblázatok ("Sheet2"). Oszlopok ("B"). PasteSpecial Paste: = xlPasteValuesAndNumberFormats |
Most láthatja, hogy a számformázás is be van illesztve, megőrizve a százalékos formátumot.
.Érték .Paste helyett
Az értékek beillesztése helyett használhatja a Range objektum Value tulajdonságát:
Ezzel az A2 cellaértéke megegyezik a B2 cellaértékével
1 | Tartomány ("A2"). Érték = Tartomány ("B2"). Érték |
Egy cellatartományt is beállíthat egyetlen cella értékével:
1 | Tartomány ("A2: C5"). Érték = Tartomány ("A1"). Érték |
vagy egy másik, azonos méretű sejttartománnyal egyenlő sejttartomány:
1 | Tartomány ("B2: D4"). Érték = Tartomány ("A1: C3"). Érték |
Kevesebb gépelés az Value tulajdonság használatához. Továbbá, ha szeretne jártas lenni az Excel VBA -ban, ismerje meg a cellák Érték tulajdonságával való munkát.
Cellaérték vs. Érték2 tulajdonság
Technikailag jobb egy cella Value2 tulajdonságát használni. Az Value2 valamivel gyorsabb (ez csak rendkívül nagy számításoknál fontos), és az Value tulajdonság csonka eredményt adhat, ha a cella pénznemként vagy dátumként van formázva. Az általam látott kódok 99%-a azonban .Value értéket használ, és nem .Value2 értéket. Én személy szerint nem használom .Value2, de tudnia kell, hogy létezik.
1 | Tartomány ("A2"). Érték2 = Tartomány ("B2"). Érték2 |
Copy Paste Builder
Létrehoztunk egy „Copy Paste Code Builder” programot, amely megkönnyíti a VBA -kód létrehozását a cellák másolásához (vagy kivágásához) és beillesztéséhez. Az építtető a miénk VBA bővítmény: AutoMacro.
AutoMacro sok mást is tartalmaz Kódgenerátorok, kiterjedt Kódkönyvtár, és erőteljes Kódolási eszközök.
Speciális beillesztés - Formátumok és képletek
A Beillesztési értékek mellett a leggyakoribb speciális beillesztési lehetőségek a Beillesztési formátumok és a Képlet beillesztése
Formátumok beillesztése
A Beillesztési formátumok lehetővé teszi az összes cellaformázás beillesztését.
12 | Tartomány ("A1: A10"). MásolatTartomány ("B1: B10"). PasteSpecial Paste: = xlPasteFormats |
Képletek beillesztése
A képletek beillesztése csak a cellaképleteket illeszti be. Ez akkor is rendkívül hasznos, ha cellaképleteket szeretne másolni, de nem szeretné másolni a cella háttérszíneit (vagy más cellaformázást).
12 | Tartomány ("A1: A10"). MásolatTartomány ("B1: B10"). PasteSpecial Paste: = xlPasteFormulas |
Illessze be a képleteket és a számformátumokat
A fenti értékek és számformátumok beillesztéséhez hasonlóan számformátumokat másolhat és illeszthet be képletekkel együtt
Itt másolunk egy cellaképletet, csak a számviteli szám formázásával és a képletek beillesztésével.
12 | Táblázatok ("Sheet1"). Tartomány ("D3"). MásolatTáblázatok ("Sheet2"). Tartomány ("D3"). PasteSpecial xlPasteFormulas |
Figyelje meg, hogy a számformázás elvész, és ehelyett egy hanyag, nem lekerekített érték jelenik meg.
Ehelyett használjunk képletek és számok beillesztési formátumokat:
12 | Táblázatok ("Sheet1"). Tartomány ("D3"). MásolatTáblázatok ("Sheet2"). Tartomány ("D3"). PasteSpecial xlPasteFormulasAndNumberFormats |
Most láthatja, hogy a számformázás is be van illesztve, megőrizve a számviteli formátumot.
Különleges beillesztés - üres helyek átültetése és átugrása
Paste Special - Transpose
A Paste Special Transpose lehetővé teszi a cellák másolását és beillesztését, megváltoztatva a tájolást felülről lentről balra jobbra (vagy fordítva):
12 | Táblázatok ("Sheet1"). Tartomány ("A1: A5"). MásolásTáblázatok ("Sheet1"). Tartomány ("B1"). PasteSpecial Transpose: = True |
Különleges beillesztés - üres lapok kihagyása
A Skip blanks egy speciális paszta opció, amelyet úgy tűnik, nem használnak olyan gyakran, mint kellene. Lehetővé teszi, hogy másoláskor és beillesztéskor csak nem üres cellákat másoljon. Tehát az üres cellákat nem másolja át.
Az alábbi példában. Másoljuk az A oszlopot, csináljunk egy normál beillesztést a B oszlopba, és hagyjuk ki az üres beillesztést a C oszlopban. Láthatjuk, hogy az üres cellákat nem illesztették be a C oszlopba az alábbi képen.
123 | Táblázatok ("Sheet1"). Tartomány ("A1: A5"). MásolatTáblázatok ("Sheet1"). Tartomány ("B1"). PasteSpecial SkipBlanks: = HamisTáblázatok ("Sheet1"). Tartomány ("C1"). PasteSpecial SkipBlanks: = True |
Egyéb speciális beillesztési lehetőségek
Paste Special - Megjegyzések
1 | Táblázatok ("Sheet1"). Tartomány ("A1"). Lapok másolása ("Sheet1"). Tartomány ("E1"). PasteSpecial xlPasteComments |
Különleges beillesztés - érvényesítés
12 | Táblázatok ("Sheet1"). Tartomány ("A1: A4"). MásolatTáblázatok ("Sheet1"). Tartomány ("B1: B4"). PasteSpecial xlPasteValidation |
Különleges beillesztés - Minden a forrás téma használatával
123 | Munkafüzetek (1). Táblázatok ("Sheet1"). Tartomány ("A1: A2"). MásolatMunkafüzetek (2). Táblázatok ("Sheet1"). Tartomány ("A1"). PasteSpecialMunkafüzetek (2). Táblázatok ("Sheet1"). Tartomány ("B1"). PasteSpecial xlPasteAllUsingSourceTheme |
Különleges beillesztés - a szegélyek kivételével
123 | Tartomány ("B2: C3"). MásolatTartomány ("E2"). PasteSpecialTartomány ("H2"). PasteSpecial xlPasteAllExceptBorders |
PasteSpecial - Oszlopszélességek
Személyes kedvencem. A PasteSpecial oszlopszélességek lemásolják és beillesztik az oszlopok szélességét.
123 | Tartomány ("A1: A2"). MásolásTartomány ("C1"). PasteSpecialTartomány ("E1"). PasteSpecial xlPasteColumnWidths |
PasteSpecial - Minden egyesítő feltételes formátum
123 | Tartomány ("A1: A4"). MásolatTartomány ("C1"). PasteSpecialTartomány ("E1"). PasteSpecial xlPasteAllMergingConditionalFormats |