VBA Value Paste & PasteSpecial

Tämä opetusohjelma näyttää, kuinka PasteSpecialin avulla VBA: ssa voidaan liittää vain tietyt solun ominaisuudet (esim. Arvot, muodot)

Kun kopioit ja liität Excelissä solun, kopioit ja liität kaikki solun ominaisuudet: arvot, muodot, kaavat, numeroiden muotoilu, reunat jne.:

Sen sijaan voit liittää vain liittää vain tiettyjä solun ominaisuuksia. Excelissä Paste Special -valikkoon pääsee pikanäppäimellä CTRL + ALT + V (solun kopioinnin jälkeen):

Täältä näet kaikki liitettävien soluominaisuuksien yhdistelmät.

Jos tallennat makron käyttäessäsi Liitä erikoisvalikkoa, voit käyttää luotua koodia. Tämä on usein helpoin tapa käyttää VBA: ta Paste Specialin liittämiseen.

Liitä arvot

Liitä arvot liittää vain solun arvon. Jos solu sisälsi kaavan, Liitä arvot liittää kaavan tuloksen.

Tämä koodi kopioi ja liittää yhden laskentataulukon yksittäisen solun arvot:

12 Alue ("A1")Alue ("B1"). PasteSpecial Paste: = xlPasteValues

Kopioi ja liitä arvo eri arkille

Tämä esimerkki kopioi ja liitä arvot yksittäisille soluille eri laskentataulukoissa

12 Sheets ("Sheet1"). Alue ("A1"). KopioSheets ("Sheet2"). Alue ("B1"). PasteSpecial Paste: = xlPasteValues

Näissä esimerkeissä kopioidaan ja liitetään arvoja solualueille:

Kopioi ja liitä arvoalueet

12 Alue ("A1: B3")Alue ("C1"). PasteSpecial Paste: = xlPasteValues

Kopioi ja liitä arvo -sarakkeet

12 Sarakkeet ("A")Sarakkeet ("B"). PasteSpecial Paste: = xlPasteValues

Kopioi ja liitä rivit

12 Rivit (1)Rivit (2) .PasteSpecial Paste: = xlPasteValues

Liitä arvot ja numeromuodot

Arvojen liittäminen liittää vain solun arvon. Muotoilua ei liitetä, mukaan lukien numeroiden muotoilu.

Usein, kun liität arvoja, haluat todennäköisesti sisällyttää myös numeroiden muotoilun, jotta arvosi pysyvät muotoiltuina. Katsotaanpa esimerkkiä.

Tässä arvo liitä solu, joka sisältää prosenttiosuuden:

12 Sheets ("Sheet1"). Sarakkeet ("D"). KopioSheets ("Sheet2"). Sarakkeet ("B"). PasteSpecial Paste: = xlPasteValues

Huomaa, kuinka prosenttiluvun muotoilu menetetään ja sen sijaan näytetään huolimaton desimaaliarvo.

Käytämme sen sijaan Liitä arvot ja numerot -muotoja:

12 Sheets ("Sheet1"). Sarakkeet ("D"). KopioSheets ("Sheet2"). Sarakkeet ("B"). PasteSpecial Paste: = xlPasteValuesAndNumberFormats

Nyt näet, että myös numeroiden muotoilu on liitetty, säilyttäen prosenttimuoto.

.Arvo .Pasta sijaan

Arvojen liittämisen sijaan voit käyttää Range -objektin Value -ominaisuutta:

Tämä asettaa A2: n solun arvon yhtä suureksi kuin B2: n soluarvo

1 Alue ("A2"). Arvo = Alue ("B2"). Arvo

Voit myös asettaa solualueen, joka vastaa yhden solun arvoa:

1 Alue ("A2: C5"). Arvo = Alue ("A1"). Arvo

tai solualue, joka vastaa toista identtisen kokoista solualuetta:

1 Alue ("B2: D4"). Arvo = Alue ("A1: C3"). Arvo

Arvo -ominaisuuden käyttäminen on vähemmän kirjoittamista. Jos haluat oppia Excel VBA: ta, sinun tulee myös tuntea solujen Arvo -ominaisuuden käyttö.

Solun arvo vs. arvo2 -ominaisuus

Teknisesti on parempi käyttää solun Value2 -ominaisuutta. Arvo2 on hieman nopeampi (tällä on merkitystä vain erittäin suurilla laskelmilla) ja Arvo -ominaisuus saattaa antaa sinulle katkaistun tuloksen solusta, joka on muotoiltu valuutaksi tai päivämääräksi. Kuitenkin 99%+ koodista, jonka olen nähnyt, käyttää .Value eikä .Value2. En itse käytä .Value2: ta, mutta sinun pitäisi olla tietoinen sen olemassaolosta.

1 Alue ("A2"). Arvo2 = Alue ("B2"). Arvo2

Copy Paste Builder

Olemme luoneet "Copy Paste Code Builderin", jonka avulla on helppo luoda VBA -koodi solujen kopioimiseksi (tai leikkaamiseksi) ja liittämiseksi. Rakentaja on osa meitä VBA-lisäosa: AutoMacro.

AutoMacro sisältää myös monia muita Koodigeneraattorit, laaja Koodikirjasto, ja voimakas Koodaustyökalut.

Liitä erityinen - muodot ja kaavat

Liitä arvojen lisäksi yleisimmät liittämisvaihtoehdot ovat Liitä muodot ja Liitä kaavat

Liitä muodot

Liitä muodot -toiminnon avulla voit liittää kaikki solujen muotoilut.

12 Alue ("A1: A10"). KopioiAlue ("B1: B10"). PasteSpecial Paste: = xlPasteFormats

Liitä kaavat

Liitä kaavat liittää vain solukaavat. Tämä on myös erittäin hyödyllistä, jos haluat kopioida solukaavoja, mutta et halua kopioida solun taustavärejä (tai muuta solun muotoilua).

12 Alue ("A1: A10"). KopioiAlue ("B1: B10"). PasteSpecial Paste: = xlPasteFormulas

Liitä kaavat ja numeromuodot

Samankaltaisia ​​kuin Liitä arvot ja numeromuodot yllä, voit myös kopioida ja liittää lukumuotoja kaavojen kanssa

Täällä kopioimme solukaavan, jossa on vain tilinumeron muotoilu ja liitä kaavat.

12 Sheets ("Sheet1"). Alue ("D3"). KopioSheets ("Sheet2"). Alue ("D3"). PasteSpecial xlPasteFormulas

Huomaa, kuinka numeroiden muotoilu häviää ja sen sijaan näytetään huolimaton pyöristämätön arvo.

Käytämme sen sijaan Liitä kaavat ja numerot -muotoja:

12 Sheets ("Sheet1"). Alue ("D3"). KopioSheets ("Sheet2"). Alue ("D3"). PasteSpecial xlPasteFormulasAndNumberFormats

Nyt näet, että myös numeroiden muotoilu on liitetty päälle säilyttäen kirjanpitomuoto.

Paste Special - Transponoi ja ohita aihiot

Liitä erityinen - Transponoi

Paste Special Transpose -toiminnon avulla voit kopioida ja liittää soluja, jotka muuttavat suuntaa ylhäältä alhaalta vasemmalle oikealle (tai päinvastoin):

12 Sheets ("Sheet1"). Alue ("A1: A5"). KopioSheets ("Sheet1"). Alue ("B1"). PasteSpecial Transpose: = True

Liitä erikoisuus - ohita aihiot

Ohita aihiot on erityinen liima -vaihtoehto, jota ei näytä käytettävän niin usein kuin sen pitäisi. Sen avulla voit kopioida vain ei-tyhjiä soluja kopioitaessa ja liitettäessä. Tyhjiä soluja ei siis kopioida.

Tässä esimerkissä alla. Kopioimme sarakkeen A, teemme tavallisen liittämisen sarakkeeseen B ja ohitamme tyhjät liitteet sarakkeessa C. Voit nähdä, että tyhjiä soluja ei ole liitetty sarakkeeseen C alla olevassa kuvassa.

123 Sheets ("Sheet1"). Alue ("A1: A5"). KopioSheets ("Sheet1"). Alue ("B1"). PasteSpecial SkipBlanks: = FalseSheets ("Sheet1"). Alue ("C1"). PasteSpecial SkipBlanks: = True

Muut Liitä erikoisvaihtoehdot

Liitä erityinen - Kommentit

1 Sheets ("Sheet1"). Alue ("A1"). Copy Sheets ("Sheet1"). Range ("E1"). PasteSpecial xlPasteComments

Liitä erityinen - vahvistus

12 Sheets ("Sheet1"). Alue ("A1: A4"). KopioSheets ("Sheet1"). Alue ("B1: B4"). PasteSpecial xlPasteValidation

Liitä erityinen - kaikki käyttämällä lähdeteemaa

123 Työkirjat (1). Taulukot ("Sheet1"). Alue ("A1: A2"). KopioTyökirjat (2). Taulukot ("Sheet1"). Alue ("A1"). LiitäTyökirjat (2). Taulukot ("Sheet1"). Alue ("B1"). PasteSpecial xlPasteAllUsingSourceTheme

Liitä erityinen - kaikki paitsi reunukset

123 Alue ("B2: C3"). KopioAlue ("E2"). PasteSpecialAlue ("H2"). PasteSpecial xlPasteAllExceptBorders

PasteSpecial - Sarakkeen leveydet

Henkilökohtainen suosikkini. PasteSpecial Column Widths kopioi ja liittää sarakkeiden leveyden.

123 Alue ("A1: A2"). KopioiAlue ("C1"). PasteSpecialAlue ("E1"). PasteSpecial xlPasteColumnWidths

PasteSpecial - Kaikki yhdistävät ehdolliset muodot

123 Alue ("A1: A4")Alue ("C1"). PasteSpecialAlue ("E1"). PasteSpecial xlPasteAllMergingConditionalFormats

wave wave wave wave wave