Jak víte, metoda VBA provádí akci v Excelu 2016. Objekt Range má desítky metod, ale většinu z nich nebudete potřebovat. Zde najdete některé z nejběžněji používaných metod objektu Range.
Metoda Select
Pomocí metody Vybrat vyberte oblast buněk. Následující příkaz vybere rozsah v aktivním listu:
Rozsah („A1:C12“). Vyberte
Před výběrem rozsahu je často dobré použít jeden dodatečný příkaz, který zajistí, že je aktivní správný list. Pokud například List1 obsahuje rozsah, který chcete vybrat, použijte k výběru rozsahu následující příkazy:
Listy („List1“). Aktivujte
Rozsah („A1:C12“). Vyberte
Na rozdíl od toho, co můžete očekávat, následující příkaz generuje chybu, pokud List1 již není aktivním listem. Jinými slovy, musíte použít dva příkazy, nikoli pouze jeden: jeden pro aktivaci listu a druhý pro výběr rozsahu.
Listy(“List1”).Rozsah(”A1:C12”).Vyberte
Pokud k výběru rozsahu použijete metodu GoTo objektu Application, můžete na výběr správného listu nejprve zapomenout. Tento příkaz aktivuje List1 a poté vybere rozsah:
Application.Goto Sheets(“Sheet1”).Range(”A1:C12”)
Metoda Přejít na je ekvivalentem VBA ke stisknutí klávesy F5 v aplikaci Excel, která zobrazí dialogové okno Přejít.
Metody kopírování a vkládání
Ve VBA můžete provádět operace kopírování a vkládání pomocí metod Kopírovat a Vložit. Všimněte si, že do hry vstupují dva různé předměty. Metoda Copy je použitelná pro objekt Range, ale metoda Paste platí pro objekt Worksheet. Ve skutečnosti to dává smysl: Zkopírujete rozsah a vložíte jej do listu.
Toto krátké makro (s laskavým svolením záznamníku maker) zkopíruje rozsah A1:A12 a vloží jej do stejného listu počínaje buňkou C1:
Sub CopyRange()
Rozsah („A1:A12“). Vyberte
Selection.Copy
Rozsah („C1“). Vyberte
ActiveSheet.Paste
End Sub
Všimněte si, že v předchozím příkladu je objekt ActiveSheet použit s metodou Paste. Toto je speciální verze objektu Worksheet, která odkazuje na aktuálně aktivní list. Všimněte si také, že makro vybere rozsah před zkopírováním. Nemusíte však vybrat rozsah, než s ním něco uděláte. Ve skutečnosti následující postup provádí stejný úkol jako předchozí příklad pomocí jediného příkazu:
Sub CopyRange2()
Rozsah („A1:A12“). Rozsah kopírování („C1“)
End Sub
Tento postup využívá skutečnosti, že metoda Copy může použít argument, který odpovídá cílovému rozsahu operace kopírování. To je něco, co můžete zjistit kontrolou v systému nápovědy.
Metoda Clear
Metoda Clear odstraní obsah rozsahu a veškeré formátování buněk. Pokud například chcete přerušit vše ve sloupci D, následující příkaz vám pomůže:
Sloupce(“D:D”).Vymazat
Měli byste si být vědomi dvou souvisejících metod. Metoda ClearContents odstraní obsah rozsahu, ale ponechá beze změny formátování. Metoda ClearFormats odstraní formátování v rozsahu, ale ne obsah buňky.
Metoda Delete
Vymazání rozsahu se liší od smazání rozsahu. Když odstraníte oblast, Excel posune zbývající buňky, aby zaplnily oblast, kterou jste odstranili.
Následující příklad používá metodu Delete k odstranění řádku 6:
Řádky(“6:6”).Smazat
Když odstraníte oblast, která není úplným řádkem nebo sloupcem, Excel potřebuje vědět, jak posunout buňky. (Chcete-li vidět, jak to funguje, experimentujte s příkazem Domů → Buňky → Odstranit → Odstranit buňky v Excelu.)
Následující příkaz odstraní rozsah a poté vyplní výslednou mezeru posunutím ostatních buněk doleva:
Rozsah(“C6:C10”).Odstranit xlToLeft
Metoda Delete používá argument, který označuje, jak má Excel posunout zbývající buňky. V tomto případě je pro argument použita vestavěná konstanta (xlToLeft). Můžete také použít xlUp, další pojmenovanou konstantu.