VBA TypeName

Tämä artikkeli osoittaa VBA TypeName -toiminnon käytön.

VBA TypeName Toimintoa käytetään määrittämään soluun tallennettujen tietojen tyyppi tai valitun objektin tyyppi - esimerkiksi laskentataulukko, alue tai solu tai lomakkeen ohjausobjekti.

Datatyypin määrittäminen solussa

Sen määrittämiseksi, oliko tietotyyppi solussa, voimme käyttää TypeName -toimintoa Solut -ominaisuuden kanssa.

123 Sub TestCellDataType ()MsgBox "Tietojen tyyppi" & Solut (3, 2) .Osoite & "on" & TypeName (Solut (3, 2). Arvo)End Sub

Jos suoritamme tämän koodin yllä olevalla laskentataulukolla, viestiruutu kertoo meille, millaisia ​​tietoja solussa on.

Valitun kohteen tyypin määrittäminen

Voimme myös käyttää TypeNamea määrittämään, minkä tyyppinen objekti on valittu laskentataulukkoon - esimerkiksi alue tai kaavio.

123 Alatestivalinta ()MsgBox "Olet valinnut" & TypeName (valinta)End Sub

Tai jos valitsemme kaavion:

Voimme porata vielä pidemmälle ja valita objektit kaaviosta, ja makro palauttaa valitsemamme.

Kaikki tämä voi olla hyödyllisintä rakennettaessa VBA -projektiamme joko ohjaamaan koodin kulkua tai estämään virheiden esiintymistä testaamalla varmistaaksemme, että oikea objektityyppi on valittu tai että oikeat tiedot syötetään soluun .

Tyypin nimen käyttäminen lomakeohjaimissa

VBA: n avulla voimme luoda interaktiivisia lomakkeita, joita käyttäjä voi täyttää ja palauttaa tiedot käytettävään koodiin eri tavoin. Voimme käyttää TypeName -operaattoria määrittämään lomakkeessa käytettävien ohjainten tyypin.

Alla olevassa esimerkissä olen luonut käyttäjälomakkeen, jossa on erilaisia ​​säätimiä - pari tekstiruutua, yhdistelmäruutu, 2 asetuspainiketta, 2 valintaruutua ja 3 komentopainiketta.

Käyttämällä alla olevaa koodia voin selvittää, millaisia ​​ohjaimia lomakkeessa on, selaamalla läpi kaikki lomakkeen ohjaimet. Olen käyttänyt TypeName -funktiota palauttaaksesi viestin, jossa on ohjausobjektin tyyppi ja VBA IF -lauseke, jotta voin tarkistaa, minkä tyyppinen ohjaus on valittu.

123456 Sub WhatControlType ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleMsgBox "Ohjaus on" & TypeName (ctl)Seuraava ctlEnd Sub

Tämäntyyppinen koodi voi olla erittäin hyödyllinen, jos haluamme ottaa ohjaukset käyttöön tai poistaa ne käytöstä. Alla olevassa koodissa, kun lomake avataan ensimmäisen kerran, valintapainikkeet ja valintaruudut ovat poissa käytöstä.

123456789101112 Yksityinen alikäyttäjäForm_Initialize ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleJos TypeName (ctl) = "CheckBox" Sittenctl.Enabled = VääräElseIf TypeName (ctl) = "OptionButton" Sittenctl.Enabled = VääräMuuctl.Enabled = TottaLoppu JosSeuraava ctlEnd Sub

Jos haluat ottaa käyttöön valintanapit ja valintaruudut, olen kirjoittanut jonkin lisäkoodin Ota ohjaimet käyttöön -painikkeen taakse.

12345678910 Yksityinen ali cmdEnable_Click ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleJos TypeName (ctl) = "CheckBox" Sittenctl.Enabled = Ei ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Sittenctl.Enabled = Ei ctl.EnabledLoppu JosSeuraava ctlEnd Sub

Tämän koodin toiminnot voidaan luoda myös VBA TypeOf -operaattorin avulla.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave