Найти тему
VBA Excel с нуля

VBA Excel № 116. Идентификация типа данных ячейки.

Приветствую, дорогие читатели!

В этой статье давайте рассмотрим функцию, которая определяет тип данных ячейки в Excel. Она базируется на встроенных функциях Excel, таких как ЕНЕТЕКСТ(), ЕЛОГИЧ() и ЕОШИБКА(), а также на поддержке VBA для функций IsEmpty (пусто), IsDate (дата) и IsNumeric (число).

Назовём её (нашу функцию) ТипЯчейки. Эта функция принимает в качестве аргумента ячейку и возвращает строку, описывающую тип данных левой верхней ячейки этого диапазона. Возможные типы данных включают "Пусто", "Текст", "Булево выражение", "Ошибка", "Дата", "Время" или "Число". Функцию можно использовать как в формулах на листе Excel, так и вызывать из других процедур VBA.

Данную функцию разберём в конце статьи
Данную функцию разберём в конце статьи

На приведенных скриншотах ниже демонстрируется пример использования этой функции в формулах, введенных в столбце D. Формулы используют данные из столбца C в качестве аргумента, а в столбце E отображается описание данных, определенное функцией ТипЯчейки.

-3
-4

И конечно, давайте разберем эту функцию построчно:

  • Function ТипЯчейки(Rng): Это объявление функции с именем "ТипЯчейки", которая принимает один аргумент Rng, представляющий диапазон ячеек или ячейку.
  • Dim Ячейка As Range: Здесь создается переменная Ячейка типа Range, которая будет использоваться для обращения к ячейке в указанном диапазоне.
  • Set Ячейка = Rng.Range("A1"): Эта строка устанавливает переменную Ячейка равной левой верхней ячейке указанного диапазона Rng.
  • Select Case True: Здесь начинается блок оператора выбора Select Case, который будет оценивать различные условия.
  • Case IsEmpty(Ячейка): Если ячейка пуста, то результату присваивается строка "Пусто".
  • Case Ячейка.NumberFormat = "@": Если формат ячейки текстовый, то результату присваивается строка "Текст".
  • Case Application.IsText(Ячейка): Если ячейка содержит текст, то результату также присваивается строка "Текст".
  • Case Application.IsLogical(Ячейка): Если в ячейке логическое выражение, то результату присваивается строка "Булево выражение".
  • Case Application.IsErr(Ячейка): Если в ячейке ошибка, то результату присваивается строка "Ошибка".
  • Case IsDate(Ячейка): Если в ячейке дата, то результату присваивается строка "Дата".
  • Case InStr(1, Ячейка.Text, ":") <> 0: Если в тексте ячейки есть символ ":", то считается, что это время, и результату присваивается строка "Время".
  • Case IsNumeric(Ячейка): Если в ячейке число, то результату присваивается строка "Число".
  • End Select: Этот оператор завершает блок выбора.
  • End Function: Это ключевое слово завершает определение функции.

Наука
7 млн интересуются