VBA TypeName

В этой статье будет продемонстрировано использование функции VBA TypeName.

VBA TypeName Функция используется для определения типа данных, хранящихся в ячейке, или типа выбранного объекта, например листа, диапазона или ячейки, или элемента управления в форме.

Определение типа данных в ячейке

Чтобы определить тип данных в ячейке, мы можем использовать функцию TypeName со свойством Cells.

123 Sub TestCellDataType ()MsgBox "Тип данных в" & Cells (3, 2). Address & "is" & TypeName (Cells (3, 2) .Value)Конец подписки

Если мы запустим этот код выше с листом ниже, окно сообщения сообщит нам, какой тип данных находится в ячейке.

Определение типа выбранного объекта

Мы также можем использовать TypeName, чтобы определить, какой тип объекта был выбран на листе - например, Range или Chart.

123 Sub TestSelection ()MsgBox "Вы выбрали" & TypeName (Выбор)Конец подписки

Или, если мы выберем диаграмму:

Мы можем углубиться еще дальше и выбрать объекты на диаграмме, и макрос вернет то, что мы выбрали.

Все это может быть наиболее полезно при создании нашего проекта VBA либо для управления потоком кода, либо для предотвращения ошибок путем тестирования, чтобы убедиться, что выбран правильный тип объекта или правильный тип данных вводится в ячейку. .

Использование TypeName в элементах управления формы

VBA позволяет нам создавать интерактивные формы, которые пользователь может заполнять и возвращать данные в код для использования различными способами. Мы можем использовать оператор TypeName, чтобы определить тип элементов управления, которые используются в форме.

В приведенном ниже примере я создал пользовательскую форму с различными элементами управления - парой текстовых полей, полем со списком, 2 кнопками выбора, 2 флажками и 3 кнопками команд.

Используя приведенный ниже код, я могу определить, какой тип элементов управления находится в форме, пройдя цикл по всем элементам управления в форме. Я использовал функцию TypeName, чтобы вернуть сообщение с типом элемента управления с помощью оператора IF VBA, чтобы проверить, какой тип элемента управления выбран.

123456 Sub WhatControlType ()Dim ctl как объектДля каждого ctl в Me.ControlsMsgBox "Элемент управления" & TypeName (ctl)Следующий ctlКонец подписки

Этот тип кода может быть очень полезен, если мы хотим включить или отключить элементы управления. В приведенном ниже коде при первом открытии формы переключатели и флажки отключены.

123456789101112 Частная подписка UserForm_Initialize ()Dim ctl как объектДля каждого ctl в Me.ControlsЕсли TypeName (ctl) = "CheckBox", тоctl.Enabled = ЛожьElseIf TypeName (ctl) = "OptionButton" Тогдаctl.Enabled = ЛожьЕщеctl.Enabled = TrueКонец, еслиСледующий ctlКонец подписки

Чтобы включить переключатели и флажки, я написал дополнительный код за кнопкой «Включить элементы управления».

12345678910 Частная подпрограмма cmdEnable_Click ()Dim ctl как объектДля каждого ctl в Me.ControlsЕсли TypeName (ctl) = "CheckBox", тоctl.Enabled = Не ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Тогдаctl.Enabled = Не ctl.EnabledКонец, еслиСледующий ctlКонец подписки

Функциональные возможности в этом коде также можно создать с помощью оператора VBA TypeOf.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave