Sprawdź, czy arkusz i/lub zakres istnieje funkcja

Sprawdź, czy arkusz istnieje

Stworzyliśmy funkcję, która sprawdzi, czy istnieje Arkusz lub Zakres (w konkretnym arkuszu). Test zakresu jest przydatny, jeśli chcesz sprawdzić, czy w arkuszu istnieje określony nazwany zakres.

123456789101112 „Sprawdź, czy na arkuszu istnieje zakres.„Pozostaw zakres pusty, aby sprawdzić, czy arkusz istnieje”„Wejścia:' WhatSheet - ciąg Nazwa arkusza (np. „Arkusz1”)' WhatRange (Opcjonalnie, Default = "A1") - Ciąg Nazwa zakresu (np. "A1")Funkcja RangeExists(WhatSheet As String, opcjonalnie ByVal WhatRange As String = "A1") jako BooleanTest przyciemnienia jako zakresPrzy błędzie Wznów DalejUstaw test = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Błąd.Liczba = 0W przypadku błędu Przejdź do 0Koniec funkcji

Umieść funkcję w module kodu VBA i możesz uzyskać do niej dostęp za pomocą podrzędnych procedur, takich jak:

Sprawdź, czy arkusz istnieje

123 Sub Test_SheetExists()MsgBox RangeExists("ustawienia")Napis końcowy

Sprawdź, czy na arkuszu istnieje zakres

123 Podtest_RangeExists()MsgBox RangeExists("ustawienia", "rngInput")Napis końcowy

Regulacja funkcji RangeExists

Sprawdź, czy arkusz istnieje w innym skoroszycie

Powyższa funkcja spojrzała na ActiveWorkbook (aktualnie aktywny skoroszyt). Zamiast tego możesz dostosować funkcję, aby spojrzeć na konkretny skoroszyt w następujący sposób:

12345678910111213 'Sprawdź, czy na arkuszu istnieje zakres.„Pozostaw zakres pusty, aby sprawdzić, czy arkusz istnieje”„Wejścia:' WhatBook - *Obiekt skoroszytu*' WhatSheet - ciąg Nazwa arkusza (np. „Arkusz1”)' WhatRange (Opcjonalnie, Default = "A1") - Ciąg Nazwa zakresu (np. "A1")Function RangeExists(WhatBook As Workbook, WhatSheet As String, Opcjonalne ByVal WhatRange As String = "A1") jako BooleanTest przyciemnienia jako zakresPrzy błędzie Wznów DalejUstaw test = WhatBook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Błąd.Liczba = 0W przypadku błędu Przejdź do 0Koniec funkcji

Realizacja:

1234567 Podtest_WBSheet_Exists()Dim wb jako skoroszytUstaw wb = Aktywny skoroszytMsgBox RangeExists(wb, "Arkusz1")Napis końcowy
wave wave wave wave wave