VBA tipo pavadinimas

Šis straipsnis parodys, kaip naudojama funkcija VBA TypeName.

VBA TypeName Funkcija naudojama nustatant langelyje saugomų duomenų tipą arba pasirinkto objekto tipą, pavyzdžiui, darbalapį, diapazoną ar langelį arba formos valdiklį.

Duomenų tipo nustatymas ląstelėje

Norėdami nustatyti, ar duomenų tipas buvo ląstelėje, galime naudoti funkciją „TypeName“ su ypatybe „Ląstelės“.

123 Sub TestCellDataType ()MsgBox "Duomenų tipas" & Ląstelėse (3, 2). Adresas & "yra" & TypeName (Ląstelės (3, 2) .Vertė)Pabaiga Sub

Jei šį kodą vykdysime anksčiau pateiktame darbalapyje, pranešimų laukelyje bus nurodyta, kokio tipo duomenys yra ląstelėje.

Pasirinkto objekto tipo nustatymas

Taip pat galime naudoti „TypeName“, norėdami nustatyti, kokio tipo objektas buvo pasirinktas darbalapyje - pavyzdžiui, diapazonas ar diagrama.

123 Antrinis testas Pasirinkimas ()„MsgBox“ Pasirinkote „& TypeName“ (pasirinkimas)Pabaiga Sub

Arba, jei pasirenkame diagramą:

Mes galime dar labiau įsigilinti ir pasirinkti diagramos objektus, o makrokomanda grąžins tai, ką pasirinkome.

Visa tai gali būti naudingiausia kuriant mūsų VBA projektą, kad būtų galima kontroliuoti kodo srautą arba užkirsti kelią klaidoms, bandant užtikrinti, kad būtų pasirinktas teisingas objekto tipas, arba į langelį būtų įvestas teisingas duomenų tipas .

„TypeName“ naudojimas formų valdikliuose

VBA leidžia mums sukurti interaktyvias formas, kurias vartotojas gali užpildyti ir įvairiais būdais grąžinti duomenis į kodą. Mes galime naudoti operatorių „TypeName“, kad nustatytume valdiklių, naudojamų formoje, tipą.

Žemiau pateiktame pavyzdyje aš sukūriau vartotojo formą su įvairiais valdikliais - pora teksto laukelių, kombinuotas langelis, 2 parinkčių mygtukai, 2 žymės langeliai ir 3 komandų mygtukai.

Naudodamas toliau pateiktą kodą, galiu nustatyti, kokio tipo valdikliai yra formoje, peržiūrėdamas visus formos valdiklius. Naudojau funkciją „TypeName“, norėdamas grąžinti pranešimą su valdiklio tipu su VBA IF ataskaita, kad patikrintų, kokio tipo valdiklis pasirinktas.

123456 Sub WhatControlType ()Dim ctl kaip objektasKiekvienam ctl In Me.Controls„MsgBox“ Valdiklis yra „& TypeName (ctl)“Kitas ctlPabaiga Sub

Šio tipo kodas gali būti labai naudingas, jei norime įjungti arba išjungti valdiklius. Žemiau esančiame kode, pirmą kartą atidarius formą, parinkčių mygtukai ir žymės langeliai yra išjungti.

123456789101112 Privatus antrinis vartotojasForm_Initialize ()Dim ctl kaip objektasKiekvienam ctl In Me.ControlsJei TypeName (ctl) = "CheckBox" Tadactl.Enabled = NetiesaElseIf TypeName (ctl) = "OptionButton" Tadactl.Enabled = NetiesaKitasctl.Enabled = TiesaPabaiga JeiKitas ctlPabaiga Sub

Norėdami įjungti parinkčių mygtukus ir žymimuosius laukelius, už mygtuko Įgalinti valdiklius parašiau dar vieną kodą.

12345678910 Privatus antrinis cmdEnable_Click ()Dim ctl kaip objektasKiekvienam ctl In Me.ControlsJei TypeName (ctl) = "CheckBox" Tadactl.Enabled = Ne ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Tadactl.Enabled = Ne ctl.EnabledPabaiga JeiKitas ctlPabaiga Sub

Šio kodo funkcijas taip pat galima sukurti naudojant „VBA TypeOf“ operatorių.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave