V tomto tutoriálu se naučíte několik různých metod kopírování a vkládání a vyjímání a vkládání pomocí makra VBA. Pokročilejší možnosti kopírování a vkládání si přečtěte v doprovodném tutoriálu o vkládání hodnot a PasteSpecial.
Chcete -li použít tento kód: Otevřete editor jazyka Visual Basic (Alt + F11), Vložte nový modul (Vložit> Modul) a zkopírujte a vložte požadovaný kód do modulu.
Zkopírujte (vyjměte) a vložte jednu buňku
Tento příklad zkopíruje nebo vyjme a vloží jednu buňku, od A1 do B1:
123456789 | Sub Paste_OneCell ()„Zkopírujte a vložte jednu buňkuRozsah („A1“). Rozsah kopírování („B1“)„Vyjmout a vložit jednu buňkuRozsah ("A1"). Řezný rozsah ("B1")End Sub |
Kopírovat výběr
Pokud chcete zkopírovat aktivní výběr, použijte toto:
123456789101112 | Dílčí výběr kopie ()„Vložit do definovaného rozsahuRozsah výběru.kopie ("b1")'Offset Paste (odsadí 2 buňky dolů a 1 doprava.'Výběr. KopieSelection.offset (2,1). PastaApplication.CutCopyMode = FalseEnd Sub |
Zkopírujte (vyjměte) a vložte řadu buněk
Tento příklad zkopíruje nebo vystřihne a vloží řadu buněk, A1: A3 až B1: B3:
123456789 | Sub Paste_Range ()„Zkopírujte a vložte řadu buněkRozsah ("A1: A3"). Rozsah kopírování ("B1: B3")„Vystřihněte a vložte řadu buněkRozsah ("A1: A3"). Řezný rozsah ("B1: B3")End Sub |
Zkopírujte (vyjměte) a vložte celý sloupec
Níže si ukážeme pár rychlých příkladů. Přečtěte si náš článek o kopírování a vkládání řádků a sloupců, kde najdete podrobné příklady, vysvětlení a varianty.
Tento příklad zkopíruje nebo vyjme a vloží celý sloupec, od A do B:
12345678910 | Sub PasteOneColumn ()„Zkopírujte a vložte sloupecRozsah („A: A“). Rozsah kopírování („B: B“)„Vyjmout a vložit sloupecRozsah ("A: A"). Řezný rozsah ("B: B")End Sub |
Zkopírujte (vyjměte) a vložte celý řádek
Tento příklad zkopíruje nebo vystřihne a vloží celý řádek od 1 do 2:
12345678910 | Sub Paste_OneRow ()„Zkopírujte a vložte řádekRozsah („1: 1“). Rozsah kopírování („2: 2“)`` Vystřihněte a vložte řádekRozsah („1: 1“). Řezný rozsah („2: 2“)End Sub |
Zkopírujte (vyjměte) a vložte do jiného listu nebo sešitu
1234567891011121314 | Sub Paste_Other_Sheet_or_Book ()'Vyjmout nebo zkopírovat a vložit do jiného listuPracovní listy ("list1"). Rozsah ("A1"). Kopírovat pracovní listy ("list2"). Rozsah ("B1") 'KopírovatPracovní listy („list1“). Rozsah („A1“). Vyjmout pracovní listy („list2“). Rozsah („B1“) 'Vyjmout„Vyjmout nebo zkopírovat a vložit do jiného sešituSešity ("book1.xlsm"). Pracovní listy ("list1"). Rozsah ("A1"). Kopírovat _Sešity ("book2.xlsm"). Pracovní listy ("list1"). Rozsah ("B1") 'KopírovatSešity („book1.xlsm“). Pracovní listy („list1“). Rozsah („A1“). Vyjmout _Sešity ("book2.xlsm"). Pracovní listy ("list1"). Rozsah ("B1") 'VyjmoutApplication.CutCopyMode = FalseEnd Sub |
Vložit hodnotu
Normálně při kopírování a vkládání vkládáte všechny vlastnosti buňky: formátování, vzorce atd.… Vkládání hodnot umožňuje kopírovat a vkládat hodnoty buněk a nic jiného. Nejjednodušší způsob, jak vložit hodnotu ve VBA, je přímo definovat hodnotu buňky:
123456789101112131415 | Vložit podhodnotu ()'Vložit buňky hodnotyRozsah („B1“). Hodnota = Rozsah („A1“). HodnotaRozsah ("B1: B3"). Hodnota = rozsah ("A1: A3"). Hodnota'Nastavit hodnoty mezi listyPracovní listy ("list2"). Rozsah ("A1"). Hodnota = pracovní listy ("list1"). Rozsah ("A1"). Hodnota'Nastavit hodnoty mezi sešitySešity ("book2.xlsm"). Pracovní listy ("list1"). Rozsah ("A1"). Hodnota = _Sešity ("book1.xlsm"). Pracovní listy ("list1"). Rozsah ("A1"). HodnotaApplication.CutCopyMode = FalseEnd Sub |
Vložit speciální
Vložit jinak vám umožňuje zkopírovat a vložit specifické vlastnosti buněk (příklady: formáty, hodnoty, šířky sloupců atd.). Umožňuje také provádět speciální operace vložení (příklady: přeskočit mezery, transponovat). Podíváme se na několik příkladů níže, ale pro hloubku si přečtěte náš návod na vkládání hodnot a speciální vkládání.
12345678910111213141516171819 | Sub PasteSpecial ()'Proveďte jednu speciální operaci vložení:Rozsah („A1“). Zkopírujte'Vložit formátyRozsah ("B1"). PasteSpecial Paste: = xlPasteFormats'Vložit šířky sloupcůRozsah ("B1"). PasteSpecial Paste: = xlPasteColumnWidths`` Vložit vzorceRozsah ("B1"). PasteSpecial Paste: = xlPasteFormulas'Proveďte více operací vložení najednou:Rozsah („A1“). Zkopírujte'Vložit formáty a transponovatRozsah ("B1"). PasteSpecial Paste: = xlPasteFormats, operace: = xlNone, SkipBlanks: = _False, Transpose: = TrueApplication.CutCopyMode = FalseEnd Sub |
Jasná schránka
Po kopírování a vkládání možná budete chtít schránku vymazat (v některých příkladech kódu výše). Pro vymazání schránky Excelu nastavíme Application.CutCopyMode na False:
1 | Application.CutCopyMode = False |
Toto vymaže schránku aplikace Excel. Schránku Windows však nevymaže. Chcete -li vymazat schránku okna, postupujte podle pokynů zde.