Excel VBA (Visual Basic for Applications) poskytuje výkonné nástroje pro automatizaci práce s tabulkami. Jedním z často se vyskytujících úkolů je přejít na další list. Pokud chcete v Excelu VBA přejít na další list, v tomto článku se podíváme na různé metody, které vám to umožní.
Nejprve budete muset určit aktuální list, na kterém se nacházíte. K tomu lze použít objekt ActiveSheet. Řekněme, že máte aktivní knihu Excel a chcete přejít na další list. Můžete použít kód:
ActiveSheet.Next.Activate
Tento kód aktivuje následující list v knize. Pokud další list neexistuje nebo aktuální list je poslední, pak tento kód způsobí chybu, takže před vyvoláním metody Activate doporučuje se zkontrolovat, zda další list existuje. K ověření můžete například použít následující kód:
If Not ActiveSheet.Next Is Nothing Then
Nyní máte jednoduché pokyny, jak přejít na další list v Excelu VBA. Pomocí těchto metod ve svých makrech automatizujte svou práci s tabulkami!
Použití příkazu Next
V programovacím jazyce VBA (Visual Basic for Applications) se příkaz Next používá k přechodu na další iteraci cyklu. Používá se v cyklech For A For each k přesunutí do další iterace cyklu a spuštění kódu, který následuje po příkazu Next .
Když program dosáhne příkazu Next, přejde na další iteraci cyklu a spustí kód, který je mezi For a Next . Pokud jsou všechny podmínky cyklu stále splněny, program tento proces opakuje. Když již nejsou splněny podmínky cyklu, program přejde na další řádek kódu po příkazu Next .
Zde je příklad použití příkazu Next v cyklu For :
For i = 1 To 10' Выполняем какой-то кодNext i
V tomto příkladu se cyklus For opakuje 10krát, zatímco proměnná i bere hodnoty od 1 do 10. Kód, který je třeba provést, je mezi řádky For I = 1 To 10 a Next i .
Stejně tak je možné použít příkaz Next v cyklu For Each . V tomto případě příkaz Next následuje příkaz Next, který označuje aktuální prvek sbírky, který se používá v cyklu For Each :
For Each element In collection' Выполняем какой-то кодNext element
V tomto příkladu se cyklus For Each provádí pro každý prvek v kolekci collection . Kód, který je třeba provést, je mezi řádky For each element in collection a Next element .
Použití příkazu Next v jazyce VBA umožňuje efektivní správu cyklů a opětovné použití kódu v následujících iteracích cyklu.
Použití funkce Sheets
Chcete-li přejít na další list v Excelu VBA, můžete použít funkci Sheets. Tato funkce vám umožňuje přistupovat k listům v knize, provádět s nimi různé operace a přistupovat k jejich vlastnostem a metodám.
Pro přechod na další list budeme muset použít index aktuálního listu a funkci Sheets. Aktuální list můžeme získat pomocí vlastnosti ActiveSheet a poté použít metodu Next k získání dalšího listu.
Sub GoToNextSheet()Dim currentSheet As WorksheetDim nextSheet As Worksheet' Получаем текущий листSet currentSheet = ActiveSheet' Получаем следующий листSet nextSheet = currentSheet.Next' Переходим на следующий листnextSheet.ActivateEnd Sub
V tomto kódu vytváříme proměnné currentSheet a nextSheet typu Worksheet. Poté použijeme vlastnost ActiveSheet k získání aktuálního listu a metodou Next získáme další list. Nakonec aktivujeme další list pomocí metody Activate.
Nyní, když máme funkci, která přechází na další list, můžeme ji kdykoli zavolat v jiných postupech nebo makrech a přejít na další list.
Použití indexů
Indexy listů v Excelu VBA začínají na 1 (První list) a poté má každý následující list následující index:
| Index | List |
|---|---|
| 1 | List1 |
| 2 | List2 |
| 3 | List3 |
| . | . |
Chcete-li přejít na další list pomocí indexů, můžete použít následující kód:
Sheets(индекс).Activate
Chcete-li například přejít na další list po aktivním listu, můžete použít následující kód:
ActiveSheet.Next.Activate
Tento kód přepne aktivní list na následující index.
Kromě toho lze použít cykly k přeskupení všech listů v knize:
Dim ws As WorksheetFor Each ws In ThisWorkbook.Worksheets' . ваш код . Next ws
Uvnitř cyklu lze s každým listem provádět různé operace pomocí objektu ws . Můžete například měnit hodnoty buněk, kopírovat data atd.
Použití indexů listů může být užitečné při automatizaci úloh zpracování dat v Excelu pomocí VBA. Pamatujte, že indexy listů závisí na jejich pořadí, takže při přidávání nebo odstraňování listů se indexy také mění.
Použití cyklu For Each
Cyklus For Each v Excelu vám VBA umožňuje procházet položky sbírky nebo pole po sobě a provádět určité akce pro každou položku. Zjednodušuje proces zpracování dat a zvyšuje efektivitu programování.
Příklad použití cyklu For Each Chcete-li přejít na další list v Excelu VBA:
Sub GoToNextSheet()Dim ws As Worksheet' Перебираем все листы в книгеFor Each ws In ThisWorkbook.Sheets' Проверяем, является ли текущий лист активнымIf ws.Name = ActiveSheet.Name Then' Переходим на следующий листws.Next.ActivateExit For ' Прерываем цикл после перехода на следующий листEnd IfNext wsEnd Sub
V tomto příkladu cyklus For Each přehraje všechny listy v aktuální knize. U každého listu zkontroluje, zda je aktuální list aktivní. Pokud ano, dojde k přechodu na další list a cyklus je přerušen pomocí operátora Exit For.
Použití cyklu For Each umožňuje efektivně zpracovávat mnoho prvků a provádět různé akce pro každý z nich. Je jedním z důležitých nástrojů v Excelu VBA pro automatizaci a optimalizaci práce s daty.
Využití objektu Workbook
Pro přechod na další list lze použít metodu Next bez uvedení názvu listu. Příklad kódu:
Všimnete si: před použitím metody Next byste měli nejprve aktivovat jeden z listů knihy, jinak dojde k chybě provádění.
Také pro přechod na konkrétní list lze použít metodu tabulek, která jako argument uvádí název listu. Příklad kódu:
Pokud jsou v knize skryté listy, měli byste je nejprve zviditelnit, abyste mohli přejít na takový list. K tomu lze použít vlastnost Visible a přiřadit jí hodnotu xlsheetvisible. Příklad kódu:
Použití objektu Workbook usnadňuje správu listů Knihy a provádění nezbytných datových operací.