Ez a cikk bemutatja a VBA TypeName függvény használatát.
A VBA TypeName A függvény a cellában tárolt adatok típusának vagy a kiválasztott objektum típusának - például egy munkalapnak, tartománynak vagy cellának vagy egy űrlap vezérlőjének - meghatározására szolgál.
Az adattípus meghatározása egy cellában
Annak meghatározásához, hogy adattípus van -e egy cellában, használhatjuk a TypeName függvényt a Cells tulajdonsággal.
123 | Sub TestCellDataType ()MsgBox "A" & Cells (3, 2). Adatok típusa "& Cells (3, 2) .Cím &" a "& TypeName (Cellak (3, 2). Érték)End Sub |
Ha ezt a kódot futtatjuk az alábbi munkalappal, akkor az üzenetmező megmutatja, hogy milyen típusú adatok vannak a cellában.
A kiválasztott objektum típusának meghatározása
A TypeName segítségével meghatározhatjuk, hogy milyen típusú objektum van kiválasztva a munkalapon - például tartomány vagy diagram.
123 | Sub TestSelection ()MsgBox "Kiválasztott egy" & TypeName (Kiválasztás)End Sub |
Vagy ha kiválasztunk egy diagramot:
Még tovább mélyedhetünk, és kiválaszthatjuk a diagramon belüli objektumokat, és a makró visszaadja azt, amit kiválasztottunk.
Mindez a leghasznosabb lehet a VBA -projektünk építésében, hogy vagy a kód áramlását vezéreljük, vagy hogy megakadályozzuk a hibákat a teszteléssel, hogy megbizonyosodjunk arról, hogy a megfelelő típusú objektum van kiválasztva, vagy a megfelelő típusú adatokat adjuk meg egy cellába. .
A TypeName használata az űrlapvezérlőkben
A VBA lehetővé teszi számunkra, hogy olyan interaktív űrlapokat hozzunk létre, amelyeket a felhasználó különböző módon tölthet ki és küldhet vissza a kódhoz. A TypeName operátor segítségével meghatározhatjuk az űrlapon használt vezérlők típusát.
Az alábbi példában egy felhasználói űrlapot hoztam létre, amelyen számos vezérlőelem található - pár szövegdoboz, egy kombinált doboz, 2 opciógomb, 2 jelölőnégyzet és 3 parancsgomb.
Az alábbi kód használatával megállapíthatom, hogy milyen típusú vezérlőelemek találhatók az űrlapon, az űrlap összes vezérlőjének végighurkolásával. A TypeName függvénnyel visszaadtam egy üzenetet a vezérlő típusával VBA IF nyilatkozattal, hogy ellenőrizzem, hogy milyen típusú vezérlő van kiválasztva.
123456 | Sub WhatControlType ()Dim ctl objektumkéntMinden ctl In Me.Controls eseténMsgBox "A vezérlő" & TypeName (ctl)Következő ctlEnd Sub |
Ez a típusú kód nagyon hasznos lehet, ha engedélyezni vagy letiltani szeretnénk a vezérléseket. Az alábbi kódban az űrlap első megnyitásakor az opciógombok és a jelölőnégyzetek le vannak tiltva.
123456789101112 | Privát alfelhasználóForm_Initialize ()Dim ctl objektumkéntMinden ctl In Me.Controls eseténHa TypeName (ctl) = "CheckBox" Akkorctl.Enabled = HamisElseIf TypeName (ctl) = "OptionButton" Akkorctl.Enabled = HamisMásctl.Enabled = IgazVége HaKövetkező ctlEnd Sub |
Az opciógombok és jelölőnégyzetek engedélyezéséhez néhány további kódot írtam a Vezérlők engedélyezése gomb mögé.
12345678910 | Privát al cmdEnable_Click ()Dim ctl objektumkéntMinden ctl In Me.Controls eseténHa TypeName (ctl) = "CheckBox" Akkorctl.Enabled = Nem ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Akkorctl.Enabled = Nem ctl.EnabledVége HaKövetkező ctlEnd Sub |
A kód funkciói a VBA TypeOf Operator használatával is létrehozhatók.