Определение типа данных ячейки
С помощью небольшой пользовательской функции dhCellType можно быстро получить тип данных какой-либо ячейки либо левой верхней ячейки указанного диапазона. Код функции, который набирается в стандартном модуле редактора VBA, представлен в листинге 2.73.
Листинг 2.73. Тип данных, хранящихся в ячейке
Function dhCellType(rgRange As Range) As String
' Переходим к левой верхней ячейке, если rgRange – диапазон, _
а не одна ячейка
Set rgRange = rgRange.Range(«A1»)
' Определение типа значения в ячейке
Select Case True
Case IsEmpty(rgRange)
' Ячейка пуста
dhCellType = «Пусто»
Case Application.IsText(rgRange)
' В ячейке текст
dhCellType = «Текст»
Case Application.IsLogical(rgRange)
' В ячейке логическое значение (True или False)
dhCellType = «Булево выражение»
Case Application.IsErr(rgRange)
' При вычислении значения в ячейке произошла ошибка
dhCellType = «Ошибка»
Case IsDate(rgRange)
' В ячейке дата
dhCellType = «Дата»
Case InStr(1, rgRange.Text, ":") <> 0
' В ячейке время
dhCellType = «Время»
Case IsNumeric(rgRange)
' В ячейке числовое значение
dhCellType = «Число»
End Select
End Function
Данная функция имеет один аргумент – в его качестве указывается либо адрес конкретной ячейки, либо диапазон (в последнем случае будет определен тип данных левой верхней ячейки этого диапазона). Результат работы функции отображается в активной ячейке. Например, если диапазон или указанная ячейка не содержит данных, то в активной ячейке отобразится значение Пусто; если содержится текстовое выражение, то в активной ячейке появится значение Текст и т. д. в соответствии с кодом функции.