Ta članek bo prikazal uporabo funkcije VBA TypeName.
VBA TypeName Funkcija se uporablja za določanje vrste podatkov, shranjenih v celici, ali vrste izbranega predmeta - na primer delovnega lista, obsega ali celice ali kontrolnika na obrazcu.
Določanje podatkovnega tipa v celici
Za določitev vrste podatkov v celici lahko uporabimo funkcijo TypeName z lastnostjo celic.
123 | Pod TestCellDataType ()MsgBox "Vrsta podatkov v" & Celicah (3, 2). Naslov & "je" & TypeName (Celice (3, 2). Vrednost)End Sub |
Če to kodo zaženemo s spodnjim delovnim listom, nam bo v sporočilnem oknu prikazana vrsta podatkov v celici.
Določanje vrste izbranega predmeta
Za določitev vrste predmeta, ki je bil izbran na delovnem listu, na primer obseg ali grafikon, lahko uporabimo tudi TypeName.
123 | Sub TestSelection ()MsgBox "Izbrali ste" & Ime vrste (izbor)End Sub |
Ali pa, če izberemo grafikon:
Lahko se še bolj poglobimo in izberemo predmete v grafikonu, makro pa bo vrnil tisto, kar smo izbrali.
Vse to je lahko najbolj uporabno pri izgradnji našega projekta VBA za nadzor nad pretokom kode ali za preprečitev napak s preskušanjem, da se zagotovi pravilna vrsta predmeta ali da se v celico vnese pravilna vrsta podatkov .
Uporaba TypeName za kontrole obrazcev
VBA nam omogoča ustvarjanje interaktivnih obrazcev, ki jih lahko uporabnik izpolni in podatke vrne v kodo za različne načine. Za določitev vrste kontrol, ki se uporabljajo na obrazcu, lahko uporabimo operator TypeName.
V spodnjem primeru sem ustvaril uporabniški obrazec z različnimi kontrolniki - nekaj besedilnih polj, kombinirano polje, 2 gumba z možnostmi, 2 potrditvena polja in 3 ukazne gumbe.
Z uporabo spodnje kode lahko določim, kakšne vrste kontrolnikov so na obrazcu, tako da pregledamo vse kontrole na obrazcu. Funkcijo TypeName sem uporabil za vrnitev sporočila z vrsto kontrolnika z izjavo VBA IF za preverjanje, katera vrsta nadzora je izbrana.
123456 | Sub WhatControlType ()Zatemni ctl kot objektZa vsak ctl v meni. NadzorMsgBox "Kontrolnik je" & Ime vrste (ctl)Naslednji ctlEnd Sub |
Ta vrsta kode je lahko zelo uporabna, če želimo omogočiti ali onemogočiti kontrole. V spodnji kodi so gumbi in potrditvena polja ob prvem odpiranju obrazca onemogočeni.
123456789101112 | Zasebni podporabnikForm_Initialize ()Zatemni ctl kot objektZa vsak ctl v meni. NadzorČe TypeName (ctl) = "CheckBox" Potemctl.Enabled = NapačnoElseIf TypeName (ctl) = "OptionButton" Potemctl.Enabled = NapačnoSicer pactl.Enabled = ResKonec ČeNaslednji ctlEnd Sub |
Če želite omogočiti gumbe za izbiro možnosti in potrditvena polja, sem za gumbom Omogoči kontrole napisala še nekaj kode.
12345678910 | Zasebna podrejena cmdEnable_Click ()Zatemni ctl kot objektZa vsak ctl v meni. NadzorČe TypeName (ctl) = "CheckBox" Potemctl.Enabled = Ni ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Potemctl.Enabled = Ni ctl.EnabledKonec ČeNaslednji ctlEnd Sub |
Funkcionalnost v tej kodi je mogoče ustvariti tudi z operaterjem VBA TypeOf.