Excel VBA: Funkce pro testování existence listu

Potřebujete ve svých makrech testovat existenci listu? Máme pro Vás jednoduchou funkci ve VBA.

Pomocí vlastní funkce chceme zjistit, zda list zadaného jména v souboru existuje či nikoliv. Jednou z možností je projít všechny listy a testovat, zda se jméno některého z existujících listů neshoduje s testovaným (např. pomocí FOR EACH CYKLU). Existuje však elegantnější a rychlejší řešení. Zjistíme, zda list existuje, aniž bychom všechny listy procházeli.

Princip je jednoduchý. S listem se pokusíme "něco udělat" (např. ho uložit do objektové proměnné). Jestliže list existuje, povede se to, v opačném případě vznikne chyba - tuto chybu zachytíme (aby funkce "nespadla" ) a následně otestujeme.

Funkce by mohla vypadat takto:

Function TestSheetExist(TestSheetName As String) As Boolean
Dim wsSheet As Worksheet
On Error Resume Next ' error handler-zamezí vzniku run-time chyby
Set wsSheet = Worksheets(TestSheetName)
If Err.Number = 0 Then ' chyba nevznikla --> list existuje
TestSheetExist = True
Else ' vznikla chyba --> list neexistuje
TestSheetExist = False
End If
End Function

Chcete toto a další pokročilá řešení zakomponovat do svých programů ve VBA? Kontaktujte nás.