Microsoft Excel je výkonný nástroj pro práci s daty, který nabízí široké možnosti pro automatizaci rutinních úkolů. Jedním z takových úkolů je kopírovat rozsah dat z jednoho listu na druhý. VBA (Visual Basic for Applications) - integrovaném programovacím jazyce aplikace Excel-lze napsat skript, který tento úkol provede rychle a efektivně.
Chcete-li začít, musíte otevřít Editor VBA kliknutím Alt + F11. V editoru VBA vyberte list, na kterém chcete zkopírovat datový rozsah, a poté vyberte modul, ve kterém bude kód umístěn.
Chcete-li zkopírovat rozsah z jiného listu v Excelu pomocí VBA, musíte použít metodu Copy. Syntaxe metody Copy následující: Range.Copy Destination. Jako argument Range udává rozsah, který je třeba zkopírovat, a jako argument Destination - rozsah, do kterého je třeba vložit zkopírovaná data. K určení rozsahu lze použít metodu Range nebo stačí zadat jeho adresu v hranatých závorkách.
Poznámka: před provedením operace kopírování se ujistěte, že jsou aktivní požadované listy a rozsahy.
Po napsání a spuštění skriptu v VBA bude datový rozsah úspěšně zkopírován z jednoho listu na druhý. Díky použití VBA je možné výrazně zrychlit a automatizovat práci s daty v Excelu, zejména v případě, kdy je nutné kopírovat velké množství informací.
Část 1: Příprava
Před zkopírováním rozsahu z jiného listu do Excelu pomocí VBA je třeba provést nějakou přípravnou práci.
Krok 1: Otevřete soubor Excel, který obsahuje list, ze kterého chcete zkopírovat data.
Krok 2: Přejděte na list, ze kterého chcete kopírovat.
Krok 3: Vyberte požadovaný rozsah buněk. Ujistěte se, že jste vybrali celý požadovaný rozsah, abyste zkopírovali všechna data, která potřebujete.
Po dokončení těchto kroků můžete přejít k napsání kódu VBA, který zkopíruje vybraný rozsah.
Část 2: vytvoření makra
V Excelu, abychom zkopírovali rozsah dat z jednoho listu do druhého, můžeme použít makra v jazyce VBA (Visual Basic for Applications). Makra jsou souborem příkazů, které vám umožňují automatizovat různé úkoly v Excelu.
Vytvoření makra v Excelu je velmi snadné. Zde jsou kroky, které musíte provést:
Krok 1: Otevřete sešit aplikace Excel, který obsahuje dva listy: původní list, ze kterého chcete zkopírovat data, a cílový list, do kterého chcete zkopírovat data.
Krok 2: V nabídce aplikace Excel vyberte kartu Vývojář. Pokud se karta Vývojář nezobrazí, musíte ji přidat v nastavení aplikace Excel.
Krok 3: Klikněte na tlačítko" Vypálit Makro "na kartě Vývojář. Otevře se dialogové okno "zapsat makro".
Krok 4: Do pole Název makra zadejte název makra. Můžete si vybrat jakékoli jedinečné jméno.
Krok 5: Klikněte na tlačítko" OK " a Excel začne zaznamenávat všechny akce, které provádíte.
Krok 6: Přejděte na původní list a zvýrazněte rozsah, který chcete zkopírovat.
Krok 7: Pravým tlačítkem myši klikněte na zvýrazněný rozsah a z kontextové nabídky vyberte Kopírovat.
Krok 8: Přejděte na cílový list a klikněte na buňku, kam chcete zkopírovaná data vložit.
Krok 9: Pravým tlačítkem myši klikněte na buňku a z kontextové nabídky vyberte Vložit.
Krok 10: Vraťte se do Excelu a klikněte na tlačítko "Zastavit nahrávání" na kartě Vývojář. Makro bude zastaveno.
Nyní, když jste vytvořili makro, můžete jej použít ke zkopírování datového rozsahu z jednoho listu na druhý. Stačí spustit makro a Excel automaticky provede všechny kroky, které jste zaznamenali.
Část 3: otevření jiného listu
Chcete-li zkopírovat datový rozsah z jiného listu v Excelu pomocí VBA, musíte nejprve otevřít cílový list.
K tomu lze použít objekt Worksheets, který umožňuje přístup k listům v knize podle jejich názvu nebo indexu. Než zkopírujete rozsah, ujistěte se, že jste na požadovaném listu.
Chcete-li otevřít jiný list, postupujte takto:
-
Oznamte proměnnou pro uložení odkazu na list:
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Название листа")
Nyní můžete použít proměnnou ws k provádění operací s daty na otevřeném listu, včetně kopírování rozsahů.
Oddíl 4: kopírování rozsahu
Chcete-li zkopírovat rozsah z jednoho listu na druhý v Excelu pomocí VBA, můžete použít metodu Range.Copy. Tato metoda kopíruje obsah vybraného rozsahu do schránky a umožňuje vám jej vložit do jiného rozsahu.
Chcete-li zkopírovat rozsah, musíte nejprve zadat původní rozsah a poté cílový rozsah, do kterého jej chcete zkopírovat.
Níže je uveden příklad kódu VBA, který ukazuje, jak zkopírovat rozsah z jednoho listu na druhý:
Sub CopyRange()Dim sourceSheet As WorksheetDim targetSheet As WorksheetDim sourceRange As RangeDim targetRange As Range' Указываем исходный лист и диапазонSet sourceSheet = ThisWorkbook.Sheets("Исходный лист")Set sourceRange = sourceSheet.Range("A1:D10")' Указываем целевой лист и диапазонSet targetSheet = ThisWorkbook.Sheets("Целевой лист")Set targetRange = targetSheet.Range("E1")' Копируем исходный диапазон в буфер обменаsourceRange.Copy' Вставляем содержимое из буфера обмена в целевой диапазонtargetRange.PasteSpecial Paste:=xlPasteValues' Очищаем буфер обменаApplication.CutCopyMode = FalseEnd Sub
V tomto příkladu kódu nejprve zadáme zdrojový list (sourceSheet) a zdrojový rozsah (sourceRange), který chceme zkopírovat. Poté zadáme cílový list (targetSheet) a cílový rozsah (targetRange), do kterého chceme vložit zkopírovaný obsah.
Používáme metodu Range.Copy zkopíruje původní rozsah do schránky a poté použije metodu Range.PasteSpecial, označující xlPasteValues jako argument Paste. To zajišťuje, že pouze hodnoty budou vloženy do cílového rozsahu, bez formátování nebo vzorců.
Nakonec vyprázdníme schránku nastavením vlastnosti aplikace.CutCopyMode ve False.
Názvy listů a rozsahů můžete změnit tak, aby odpovídaly vaší konkrétní příležitosti. Kromě toho můžete tento příklad kódu použít jako základ pro kopírování rozsahů z různých listů a do různých rozsahů.
Oddíl 5: Kontrola a uložení
Po zkopírování datového rozsahu z jiného listu do Excelu pomocí VBA může být užitečné provést kontrolu a uložení získaných výsledků. V této části se podíváme, jak tyto úkoly splnit.
Kontrola dat
Před uložením zkopírovaného datového rozsahu musíme zkontrolovat, zda byla data úspěšně zkopírována a zobrazena na novém listu. K tomu můžeme použít různé metody, včetně:
- Porovnejte hodnoty v původním rozsahu dat s hodnotami v zkopírovaném rozsahu, abyste se ujistili, že se shodují.
- Kontrola chyb nebo nesprávně zkopírovaných dat, ke kterým mohlo dojít během procesu kopírování.
Pokud kontrola ukáže, že data byla zkopírována správně a neobsahují žádné chyby, můžeme přejít k dalšímu kroku - uložení.
Ukládání dat
Ukládání dat do Excelu pomocí VBA lze provést pomocí metody SaveAs . Tato metoda vám umožňuje vybrat název souboru a místo uložení dat.
Příklad použití metody SaveAs :
Sub SaveData()Dim filePath As String' Получение пути к файлу сохраненияfilePath = "C:\Папка\файл.xlsx"' Сохранение данныхThisWorkbook.SaveAs filePathEnd Sub
V tomto příkladu definujeme cestu k uloženému souboru v proměnné filePath . Poté pomocí metody SaveAs uložíme aktuální sešit aplikace Excel na zadanou cestu.
Pokud potřebujete uložit data v jiném formátu, jako je CSV nebo PDF, musíte zadat příslušnou příponu souboru a vybrat vhodný formát uložení.
Po úspěšném uložení dat můžete zavřít aktuální sešit aplikace Excel nebo pokračovat v dalších aktivitách.