VBA Value Paste & PasteŠpeciálne

Tento tutoriál vám ukáže, ako používať PasteSpecial vo VBA na vkladanie iba určitých vlastností buniek (napr. Hodnoty, formáty)

V programe Excel pri kopírovaní a prilepení bunky skopírujete a prilepíte všetky vlastnosti bunky: hodnoty, formáty, vzorce, formátovanie čísel, orámovanie atď.:

Namiesto toho môžete „Prilepiť špeciálne“ a prilepiť iba určité vlastnosti bunky. V programe Excel je k ponuke Prilepiť špeciálne prístup pomocou skratky CTRL + ALT + V (po skopírovaní bunky):

Tu môžete vidieť všetky kombinácie vlastností buniek, ktoré môžete prilepiť.

Ak zaznamenáte makro pri použití ponuky Prilepiť špeciálne, môžete jednoducho použiť vygenerovaný kód. Toto je často najľahší spôsob, ako použiť VBA na prilepenie špeciálu.

Prilepiť hodnoty

Vložiť hodnoty prilepí iba „hodnotu“ bunky. Ak bunka obsahovala vzorec, prilepením hodnôt sa prilepí výsledok vzorca.

Tento kód skopíruje a prilepí hodnoty pre jednu bunku na rovnakom pracovnom hárku:

12 Rozsah („A1“). SkopírujteRozsah („B1“). PasteSpecial Paste: = xlPasteValues

Skopírujte a oceňte prilepenie na iný hárok

Tento príklad bude kopírovať a prilepiť hodnoty pre jednotlivé bunky v rôznych pracovných hárkoch

12 Listy („List1“). Rozsah („A1“). KopírovaťTabuľky („List2“). Rozsah („B1“). PasteSpecial Paste: = xlPasteValues

Tieto príklady skopírujú a prilepia hodnoty pre rozsah buniek:

Rozsahy kopírovania a hodnoty prilepenia

12 Rozsah („A1: B3“). KopírovaťRozsah („C1“). PasteSpecial Paste: = xlPasteValues

Skopírujte a oceňte stĺpce, ktoré prilepíte

12 Stĺpce („A“). SkopírujteStĺpce („B“). PasteSpecial Paste: = xlPasteValues

Skopírujte a ohodnoťte riadky

12 Riadky (1). SkopírujteRiadky (2). Pasta Špeciálna pasta: = xlPasteValues

Prilepte hodnoty a formáty čísel

Prilepením hodnôt sa prilepí iba hodnota bunky. Nie je vložené žiadne formátovanie vrátane formátovania čísel.

Pri prilepovaní hodnôt budete pravdepodobne často chcieť zahrnúť aj formátovanie čísel, aby vaše hodnoty zostali naformátované. Pozrime sa na príklad.

Tu oceníme vloženie bunky obsahujúcej percento:

12 Tabuľky („List1“). Stĺpce („D“). KopírovaťTabuľky („List2“). Stĺpce („B“). PasteSpecial Paste: = xlPasteValues

Všimnite si, ako sa stratí formátovanie percentuálneho čísla, a namiesto toho sa zobrazí nedbalá desatinná hodnota.

Namiesto toho použijeme formáty Vložiť hodnoty a čísla:

12 Tabuľky („List1“). Stĺpce („D“). KopírovaťTabuľky („List2“). Stĺpce („B“). PasteSpecial Paste: = xlPasteValuesAndNumberFormats

Teraz môžete vidieť, ako je prilepené aj formátovanie čísel, pričom sa zachová percentuálny formát.

.Hodnota namiesto .Paste

Namiesto vkladania hodnôt môžete použiť vlastnosť Value objektu Range:

Hodnota bunky A2 sa tak nastaví na hodnotu bunky B2

1 Rozsah ("A2"). Hodnota = rozsah ("B2"). Hodnota

Môžete tiež nastaviť rozsah buniek, ktorý sa rovná hodnote jednej bunky:

1 Rozsah („A2: C5“). Hodnota = rozsah („A1“). Hodnota

alebo rozsah buniek sa rovná inému rovnako veľkému rozsahu buniek:

1 Rozsah („B2: D4“). Hodnota = rozsah („A1: C3“). Hodnota

Používanie vlastnosti Value je menej náročné na písanie. Tiež, ak sa chcete naučiť ovládať Excel VBA, mali by ste byť oboznámení s prácou s vlastnosťou Hodnota buniek.

Vlastnosť hodnota bunky vs. hodnota2

Technicky je lepšie použiť vlastnosť bunky Value2. Hodnota2 je o niečo rýchlejšia (na tom záleží len pri extrémne veľkých výpočtoch) a vlastnosť Hodnota vám môže poskytnúť skrátený výsledok, pretože bunka je naformátovaná ako mena alebo dátum. Avšak viac ako 99%kódu, ktorý som videl, používa .Value a nie .Value2. Osobne nepoužívam .Value2, ale mali by ste vedieť, že existuje.

1 Rozsah ("A2"). Hodnota2 = rozsah ("B2"). Hodnota2

Kopírovať Vložiť Builder

Vytvorili sme „Copy Paste Code Builder“, ktorý uľahčuje generovanie kódu VBA na kopírovanie (alebo vystrihovanie) a vkladanie buniek. Staviteľ je našou súčasťou Doplnok VBA: AutoMacro.

AutoMacro obsahuje aj mnoho ďalších Generátory kódu, rozsiahly Knižnica kódov, a mocný Kódovacie nástroje.

Prilepiť špeciálne - formáty a vzorce

Okrem hodnôt prilepenia sú najbežnejšími možnosťami prilepenia špeciálne prilepenie formátov a prilepenie vzorcov

Prilepiť formáty

Vložiť formáty vám umožňuje prilepiť všetky formátovania buniek.

12 Rozsah („A1: A10“). KopírovaťRozsah ("B1: B10"). PasteSpecial Paste: = xlPasteFormats

Prilepiť vzorce

Prilepením vzorcov sa prilepia iba vzorce buniek. Je to tiež veľmi užitočné, ak chcete kopírovať vzorce buniek, ale nechcete kopírovať farby pozadia buniek (alebo iné formátovanie buniek).

12 Rozsah („A1: A10“). KopírovaťRozsah („B1: B10“). Špeciálna pasta na vloženie: = xlPasteFormulas

Prilepte vzorce a formáty čísel

Podobne ako vyššie uvedené Vložiť hodnoty a číselné formáty, môžete spolu so vzorcami kopírovať a vkladať aj číselné formáty

Tu skopírujeme vzorec bunky iba s formátovaním účtovných čísel a prilepením vzorcov.

12 Listy („List1“). Rozsah („D3“). KopírovaťListy („List2“). Rozsah („D3“). PasteSpecial xlPasteFormulas

Všimnite si, ako sa stratilo formátovanie čísla, a namiesto toho sa zobrazí nedbalá nezaokrúhlená hodnota.

Namiesto toho použijeme formát Vložiť vzorce a čísla:

12 Listy („List1“). Rozsah („D3“). KopírovaťHárky („List2“). Rozsah („D3“). VložiťŠpeciálne xlPasteFormulasAndNumberFormats

Teraz môžete vidieť, ako je prilepené aj formátovanie čísel, pričom zostane zachovaný formát Účtovníctvo.

Prilepiť špeciálne - transponovať a preskočiť medzery

Prilepiť špeciálne - transponovať

Vložiť špeciálnu transpozíciu vám umožňuje kopírovať a prilepovať bunky so zmenou orientácie zhora nadol na zľava doprava (alebo naopak):

12 Listy („List1“). Rozsah („A1: A5“). KopírovaťTabuľky („List1“). Rozsah („B1“). PasteSpecial Transpose: = True

Prilepiť špeciálne - preskočiť medzery

Vynechať medzery je špeciálna možnosť na vloženie, ktorá sa nezdá byť používaná tak často, ako by mala. Pri kopírovaní a vkladaní vám umožňuje kopírovať iba prázdne bunky. Prázdne bunky sa teda nekopírujú.

V tomto príklade nižšie. Skopírujeme stĺpec A, urobíme pravidelnú pastu do stĺpca B a vynecháme prázdne položky, ktoré vložíme do stĺpca C. Na obrázku nižšie môžete vidieť, že prázdne bunky neboli vložené do stĺpca C.

123 Listy („List1“). Rozsah („A1: A5“). KópiaTabuľky („List1“). Rozsah („B1“). PasteSpecial SkipBlanks: = FalseTabuľky („List1“). Rozsah („C1“). PasteSpecial SkipBlanks: = True

Ďalšie prilepenie špeciálnych možností

Prilepiť špeciálne - komentáre

1 Listy („List1“). Rozsah („A1“). Kopírovať listy („List1“). Rozsah („E1“). PasteSpecial xlPasteComments

Prilepiť špeciálne - overenie

12 Listy („List1“). Rozsah („A1: A4“). KopírovaťTabuľky („List1“). Rozsah („B1: B4“). PasteSpecial xlPasteValidation

Prilepiť špeciálne - všetko pomocou témy zdroja

123 Zošity (1). Listy („List1“). Rozsah („A1: A2“). KopírovaťZošity (2). Listy („List1“). Rozsah („A1“). PasteSpecialZošity (2). Listy („List1“). Rozsah („B1“). PasteSpecial xlPasteAllUsingSourceTheme

Prilepiť špeciálne - všetky okrem okrajov

123 Rozsah („B2: C3“). SkopírujteRozsah („E2“). PasteSpecialRozsah („H2“). PasteSpecial xlPasteAllExceptBorders

PasteSpecial - Šírky stĺpcov

Môj osobný favorit. PasteSpecial Šírky stĺpcov skopírujú a prilepia šírku stĺpcov.

123 Rozsah („A1: A2“). SkopírujteRozsah („C1“). VložiťŠpeciálneRozsah ("E1"). PasteSpecial xlPasteColumnWidths

PasteSpecial - všetky zlučujúce sapodmienečné formáty

123 Rozsah („A1: A4“). KopírovaťRozsah („C1“). PasteSpecialRozsah („E1“). PasteSpecial xlPasteAllMergingConditionalFormats

wave wave wave wave wave