Názov typu VBA

Tento článok predvedie používanie funkcie VBA TypeName.

VBA TypeName Funkcia sa používa na určenie typu údajov uložených v bunke alebo typu vybratého objektu - napríklad pracovného hárka, rozsahu alebo bunky alebo ovládacieho prvku vo formulári.

Určenie typu údajov v bunke

Na určenie, či bol dátový typ v bunke, môžeme použiť funkciu TypeName s vlastnosťou Cells.

123 Sub TestCellDataType ()MsgBox "Typ údajov v" & Bunkách (3, 2). Adresa & "je" & TypeName (Bunky (3, 2) .Hodnota)Koniec pod

Ak spustíme tento kód vyššie s pracovným listom nižšie, okno so správou nám povie, aký typ údajov sa nachádza v bunke.

Určenie typu vybratého objektu

Môžeme tiež použiť TypeName na určenie, aký typ objektu bol vybraný v pracovnom hárku - napríklad rozsah alebo graf.

123 Voľba čiastkového testu ()MsgBox „Vybrali ste“ & TypeName (výber)Koniec pod

Alebo, ak vyberieme graf:

Môžeme sa ešte viac prehĺbiť a vybrať objekty v grafe a makro vráti to, čo sme vybrali.

To všetko môže byť najužitočnejšie pri budovaní nášho projektu VBA buď na kontrolu toku kódu, alebo na zabránenie výskytu chýb testovaním, aby sa zaistilo, že je vybratý správny typ objektu, alebo je do bunky zadaný správny typ údajov. .

Použitie TypeName v ovládacích prvkoch formulára

VBA nám umožňuje vytvárať interaktívne formuláre, ktoré môže užívateľ rôznymi spôsobmi vyplniť a vrátiť údaje do kódu. Na určenie typu ovládacích prvkov, ktoré sa používajú vo formulári, môžeme použiť operátor TypeName.

V nižšie uvedenom príklade som vytvoril užívateľský formulár s rôznymi ovládacími prvkami - niekoľko textových polí, kombinované pole, 2 tlačidlá možností, 2 začiarkavacie políčka a 3 príkazové tlačidlá.

Pomocou nižšie uvedeného kódu môžem určiť, aký typ ovládacích prvkov je vo formulári, a to opakovaním všetkých ovládacích prvkov vo formulári. Použil som funkciu TypeName na vrátenie správy s typom ovládacieho prvku pomocou vyhlásenia VBA IF, aby som skontroloval, aký typ ovládacieho prvku je vybratý.

123456 Sub WhatControlType ()Dim ctl ako objektZa každý ctl In Me.ControlsMsgBox "Ovládací prvok je" & TypeName (ctl)Ďalej ctlKoniec pod

Tento typ kódu môže byť veľmi užitočný, ak chceme povoliť alebo zakázať ovládacie prvky. V nižšie uvedenom kóde sú pri prvom otvorení formulára deaktivované tlačidlá možností a začiarkavacie políčka.

123456789101112 Private Sub UserForm_Initialize ()Dim ctl ako objektZa každý ctl In Me.ControlsAk TypeName (ctl) = "CheckBox" Potomctl.Enabled = FalseElseIf TypeName (ctl) = "OptionButton" Potomctl.Enabled = FalseInakctl.Enabled = PravdaKoniec AkĎalej ctlKoniec pod

Na povolenie tlačidiel a začiarkavacích políčok možností som napísal ďalší kód za tlačidlo Povoliť ovládacie prvky.

12345678910 Súkromný sub cmdEnable_Click ()Dim ctl ako objektZa každý ctl In Me.ControlsAk TypeName (ctl) = "CheckBox" Potomctl.Enabled = Nie je ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Potomctl.Enabled = Nie je ctl.EnabledKoniec AkĎalej ctlKoniec pod

Funkciu v tomto kóde je možné vytvoriť aj pomocou operátora VBA TypeOf.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave