Име на тип VBA

Тази статия ще демонстрира използването на функцията VBA TypeName.

VBA TypeName Функцията се използва за определяне на типа данни, съхранявани в клетка, или типа на избран обект - например работен лист, диапазон или клетка или контрола върху формуляр.

Определяне на типа данни в клетка

За да определим кой тип данни е в клетка, можем да използваме функцията TypeName със свойството Cells.

123 Sub TestCellDataType ()MsgBox "Типът данни в" & клетки (3, 2). Адрес & "е" & TypeName (клетки (3, 2). Стойност)End Sub

Ако изпълним този код по -горе с работния лист по -долу, полето за съобщение ще ни каже какъв тип данни има в клетката.

Определяне типа на избрания обект

Можем също да използваме TypeName, за да определим какъв тип обект е избран в работен лист - диапазон или диаграма например.

123 Sub TestSelection ()MsgBox "Избрали сте" & Име на тип (Избор)End Sub

Или, ако изберем диаграма:

Можем да пробием още повече и да изберем обектите в диаграмата и макросът ще върне това, което сме избрали.

Всичко това може да бъде най -полезно при изграждането на нашия VBA проект, който или да контролира потока на кода, или да предотврати възникването на грешки чрез тестване, за да се гарантира, че е избран правилния тип обект, или правилният тип данни е въведен в клетка .

Използване на TypeName за контрол на формуляри

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

В примера по -долу създадох потребителски формуляр с разнообразни контроли върху него - няколко текстови полета, комбинирано поле, 2 бутона за опции, 2 квадратчета за отметка и 3 командни бутона.

Използвайки кода по -долу, мога да определя какъв тип контроли са във формуляра, като преминавам през всички контроли във формуляра. Използвах функцията TypeName, за да върна съобщение с типа на контролата с VBA IF Statement, за да проверя какъв тип контрол е избран.

123456 Sub WhatControlType ()Затъмнете ctl като обектЗа всеки ctl в мен.КонтролиMsgBox "Контролът е" & TypeName (ctl)Следващ ctlEnd Sub

Този тип код може да бъде много полезен, ако искаме да активираме или деактивираме контролите. В кода по -долу, когато формулярът се отваря за първи път, бутоните с опции и квадратчетата за отметка са деактивирани.

123456789101112 Частен подпотребителForm_Initialize ()Затъмнете ctl като обектЗа всеки ctl в мен.КонтролиАко TypeName (ctl) = "CheckBox" Тогаваctl.Enabled = FalseElseIf TypeName (ctl) = "OptionButton" Тогаваctl.Enabled = FalseИначеctl.Enabled = ВярноКрай АкоСледващ ctlEnd Sub

За да активирам бутоните и квадратчетата за опции, написах допълнителен код зад бутона Enable Controls.

12345678910 Частен под cmdEnable_Click ()Затъмнете ctl като обектЗа всеки ctl в мен.КонтролиАко TypeName (ctl) = "CheckBox" Тогаваctl.Enabled = Не ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Тогаваctl.Enabled = Не ctl.EnabledКрай АкоСледващ ctlEnd Sub

Функционалността в този код също може да бъде създадена с помощта на VBA TypeOf Operator.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave