VBA tips

Šis raksts parādīs VBA TypeOf operatora izmantošanu.

VBA TypeOf operators tiek izmantots, lai noteiktu objekta veidu. Tas var būt noderīgi, iespējojot vai atspējojot vadīklas VBA veidlapā vai kontrolējot koda plūsmu atkarībā no izmantotā objekta veida.

TypeOf izmantošana, lai kontrolētu kodu

Mēs varam izmantot TypeOf, lai pārliecinātos, ka veiktā atlase ir konkrēta objekta veids, kas mums nepieciešams - piemēram, iespējams, vēlēsimies atlasīt diapazonu un pēc tam izmantot IF priekšrakstu, lai redzētu, kas ir atlasīts. Ja tiek izvēlēts diapazons, mēs saņemsim ziņojumu, kurā norādīts, ka diapazons ir atlasīts, bet, ja diapazons nav atlasīts, mēs saņemsim citu ziņojumu.

Ļaujiet mūsu darblapā atlasīt dažas šūnas.

Tagad, ja mēs izpildām tālāk norādīto makro, mums tiks paziņots, ka esam atlasījuši diapazonu.

12345678 Apakšpārbaude ()Dim rng kā objektsJa TypeOf Selection ir diapazons, tadMsgBox "Ir izvēlēts diapazons!"CitādiMsgBox "Ir atlasīts kaut kas cits"Beigas JaBeigu apakš

Tomēr, ja mēs neizvēlamies diapazonu un neizvēlamies kaut ko citu - iespējams, diagrammu - un pēc tam palaižam makro, mēs iegūsim atšķirīgu rezultātu!

TypeOf izmantošana veidlapu vadīklās

VBA ļauj mums izveidot interaktīvas veidlapas, kuras lietotājs var aizpildīt un atgriezt datus izmantojamā kodā dažādos veidos. Mēs varam izmantot operatoru TypeOf, lai noteiktu veidlapā izmantoto vadīklu veidu.

Tālāk sniegtajā piemērā esmu izveidojis lietotāja veidlapu ar dažādām vadības ierīcēm - pāris teksta lodziņus, kombinēto lodziņu, 2 iespēju pogas, 2 izvēles rūtiņas un 3 komandu pogas.

Izmantojot zemāk esošo kodu, es varu noteikt, kāda veida vadīklas ir veidlapā, izmantojot cilni, izmantojot visas veidlapas vadīklas. Esmu izmantojis funkciju TypeName, lai atgrieztu ziņojumu ar vadīklas veidu, un esmu izmantojis VBA IF paziņojumu, izmantojot Funkcija TypeOf lai pārbaudītu, kāda veida vadīkla ir atlasīta, un pēc tam nākamo ziņojumu lodziņu, lai atgrieztu šāda veida vadīklu.

12345678910111213141516171819202122 Sub WhatControlType ()Dim ctl kā objektsPar katru ctl In Me.ControlsMsgBox (TypeName (ctl))'Izmantojiet funkciju TypeOf, lai noteiktu objekta veidu.Ja TypeOf ctl ir msforms.TextBox TadMsgBox ("Vadība ir TextBox".)Cits Ja TypeOf ctl ir msforms.ComboBox TadMsgBox ("Vadība ir kombinēta kaste".)Cits Ja TypeOf ctl ir msforms.Label TadMsgBox ("Vadība ir etiķete".)Cits Ja TypeOf ctl ir msforms.CommandButton ThenMsgBox ("Vadība ir komandas poga.")Cits Ja TypeOf ctl ir msforms. Pārbaudiet lodziņuMsgBox ("Vadība ir izvēles rūtiņa.")Cits Ja TypeOf ctl ir msforms.OptionButton TadMsgBox ("Vadība ir izvēles/radio poga.")CitādiMsgBox ("Objekts ir cita veida vadība.")Beigas JaNākamais ctlBeigu apakš

Šis koda veids var būt ļoti noderīgs, ja vēlamies iespējot vai atspējot vadīklas. Tālāk norādītajā kodā, pirmo reizi atverot veidlapu, opciju pogas un izvēles rūtiņas ir atspējotas.

123456789101112 Privāts apakšlietotājsForm_Initialize ()Dim ctl kā objektsPar katru ctl In Me.ControlsJa TypeOf ctl ir msforms. Pārbaudiet lodziņuctl.Enabled = NepareiziCits Ja TypeOf ctl ir msforms.OptionButton Tadctl.Enabled = NepareiziCitādictl.Enabled = PatiessBeigas JaNākamais ctlBeigu apakš

Lai iespējotu opciju pogas un izvēles rūtiņas, aiz pogas Iespējot vadīklas esmu uzrakstījis papildu kodu.

12345678910 Privāts apakš cmdEnable_Click ()Dim ctl kā objektsPar katru ctl In Me.ControlsJa TypeOf ctl ir msforms. Pārbaudiet lodziņuctl.Enabled = Nav ctl.EnabledCits Ja TypeOf ctl ir msforms.OptionButton Tadctl.Enabled = Nav ctl.EnabledBeigas JaNākamais ctlBeigu apakš

Tagad, kad mēs noklikšķinām uz pogas Iespējot vadīklas, ja vadīklas ir atspējotas, tās tiks iespējotas, un, ja tās ir iespējotas, tās tiks atspējotas. Tas tiek panākts, izmantojot Operators, kas ļauj mums pārslēgties starp atspējotajiem un iespējotajiem.

wave wave wave wave wave