VBA Value Paste & PasteSpecial

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

wave wave wave wave wave