Перевірте, чи існує аркуш
Ми створили функцію, яка перевірятиме наявність аркуша чи діапазону (на певному аркуші). Перевірка діапазону корисна, якщо ви хочете перевірити, чи існує певний іменований діапазон на аркуші.
123456789101112 | 'Перевірте, чи діапазон існує на аркуші.'Залиште діапазон порожнім, щоб перевірити наявність листа'Входи:'WhatSheet - Назва рядка аркуша (колишній "Sheet1")'WhatRange (необов’язково, за замовчуванням = "A1") - Назва рядка діапазону (наприклад, "A1")Функція RangeExists (WhatSheet As String, Optional ByVal WhatRange As String = "A1") Як булеве значенняТест затемнення як діапазонУвімкнути Помилка Відновити ДаліВстановити тест = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Помилка Перейти до 0Функція завершення |
Розмістіть функцію в модулі коду VBA, і ви зможете отримати до неї доступ, скориставшись такими підпроцедурами:
Перевірте, чи існує аркуш
123 | Sub Test_SheetExists ()MsgBox RangeExists ("налаштування")End Sub |
Перевірте, чи діапазон існує на аркуші
123 | Sub Test_RangeExists ()MsgBox RangeExists ("setup", "rngInput")End Sub |
Налаштування функції RangeExists
Перевірте, чи аркуш існує в іншій книзі
Вищезазначена функція розглянула ActiveWorkbook (наразі активну книгу). Замість цього ви можете налаштувати функцію, щоб подивитися на певну книгу так:
12345678910111213 | 'Перевірте, чи діапазон існує на аркуші.'Залиште діапазон порожнім, щоб перевірити наявність листа'Входи:'WhatBook - *Об'єкт робочої книги *'WhatSheet - Назва рядка аркуша (колишній "Sheet1")'WhatRange (необов’язково, за замовчуванням = "A1") - Назва рядка діапазону (наприклад, "A1")Функція RangeExists (WhatBook As Workbook, WhatSheet As String, Optional ByVal WhatRange As String = "A1") Як булеве значенняТест затемнення як діапазонУвімкнути Помилка Відновити ДаліВстановити тест = WhatBook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Помилка Перейти до 0Функція завершення |
Реалізація:
1234567 | Sub Test_WBSheet_Exists ()Dim wb Як робочий зошитВстановити wb = ActiveWorkbookMsgBox RangeExists (wb, "Sheet1")End Sub |