VBA TypeName

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.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave