Vba: jak sprawdzić, czy arkusz istnieje (z przykładem)
Możesz utworzyć w VBA następującą funkcję sprawdzającą, czy w aktualnie aktywnym skoroszycie Excela istnieje określony arkusz:
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
Ta funkcja zwróci wartość PRAWDA lub FAŁSZ , aby wskazać, czy w aktualnie aktywnym skoroszycie programu Excel istnieje dana nazwa arkusza.
Należy pamiętać, że ta funkcja po prostu sprawdza, czy numer indeksu arkusza jest większy niż 0.
Jeśli arkusz istnieje, numer indeksu arkusza będzie miał wartość co najmniej 1 , co spowoduje, że funkcja zwróci wartość TRUE .
Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.
Przykład: Użyj VBA, aby sprawdzić, czy arkusz istnieje
Załóżmy, że mamy następujący skoroszyt programu Excel z trzema arkuszami:
Możemy utworzyć w VBA następującą funkcję, aby sprawdzić, czy w tym skoroszycie istnieje konkretna nazwa arkusza:
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
Możemy następnie wpisać następującą formułę w komórce A1 aktualnie aktywnego arkusza, aby sprawdzić, czy w tym skoroszycie istnieje nazwa arkusza „Zespoły”:
=sheetExists("Teams")
Poniższy zrzut ekranu pokazuje, jak zastosować tę formułę w praktyce:
Funkcja zwraca wartość TRUE , ponieważ ta nazwa arkusza istnieje w skoroszycie.
Należy również pamiętać, że w tej funkcji nie jest rozróżniana wielkość liter.
Na przykład, jeśli sprawdzimy, czy nazwa arkusza „zespoły” istnieje, funkcja również zwróci TRUE :
Załóżmy jednak, że sprawdzamy, czy nazwa arkusza „autokary” istnieje:
Funkcja zwraca FALSE , ponieważ ta nazwa arkusza nie istnieje w skoroszycie.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak policzyć liczbę arkuszy w skoroszycie
VBA: Jak wyodrębnić dane z innego skoroszytu
VBA: jak wstawić wiele linii