Zkontrolujte, zda list a/nebo rozsah existuje

Zkontrolujte, zda list existuje

Vytvořili jsme funkci, která otestuje, zda existuje list nebo rozsah (na konkrétním listu). Test rozsahu je užitečný, pokud chcete zkontrolovat, zda na listu existuje konkrétní pojmenovaný rozsah.

123456789101112 „Vyzkoušejte, zda rozsah existuje na listu.'Nechte rozsah prázdný, abyste otestovali, zda list existuje'Vstupy:'WhatSheet - Řetězcový název listu (ex "Sheet1")'WhatRange (Volitelné, Výchozí = "A1") - Název řetězce rozsahu (ex "A1")Rozsah funkcíExistuje (WhatSheet jako řetězec, volitelně ByVal WhatRange jako řetězec = "A1") jako logická hodnotaDim test As RangePři chybě Pokračovat DalšíNastavit test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Při chybě GoTo 0Koncová funkce

Umístěte funkci do modulu kódu VBA a můžete k ní přistupovat pomocí dílčích postupů, jako jsou tyto:

Zkontrolujte, zda list existuje

123 Sub Test_SheetExists ()MsgBox RangeExists ("nastavení")End Sub

Zkontrolujte, zda rozsah existuje na listu

123 Dílčí test_rozsahu ()MsgBox RangeExists ("setup", "rngInput")End Sub

Nastavení funkce RangeExists

Zkontrolujte, zda list existuje v jiném sešitu

Výše uvedená funkce se zaměřila na ActiveWorkbook (aktuálně aktivní sešit). Místo toho můžete upravit funkci tak, aby vypadala na konkrétní sešit takto:

12345678910111213 „Vyzkoušejte, zda rozsah existuje na listu.'Nechte rozsah prázdný, abyste otestovali, zda list existuje'Vstupy:'WhatBook - *Objekt sešitu *'WhatSheet - Řetězcový název listu (ex "Sheet1")'WhatRange (Volitelné, Výchozí = "A1") - Název řetězce rozsahu (ex "A1")Rozsah funkcí Existuje (WhatBook As Workbook, WhatSheet As String, Optional ByVal WhatRange As String = "A1") As BooleanDim test As RangePři chybě Pokračovat DalšíNastavit test = WhatBook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Při chybě GoTo 0Koncová funkce

Implementace:

1234567 Dílčí test_WBSheet_Exists ()Dim wb jako sešitNastavit wb = ActiveWorkbookMsgBox RangeExists (wb, "Sheet1")End Sub
wave wave wave wave wave