VBA TypeName

Denne artikel vil demonstrere brugen af ​​VBA TypeName -funktionen.

VBA TypeName Funktion bruges til at bestemme typen af ​​data, der er gemt i en celle, eller typen af ​​et valgt objekt - f.eks. Et regneark, område eller celle eller en kontrol på en formular.

Bestemmelse af datatypen i en celle

For at bestemme, hvilken datatype der er i en celle, kan vi bruge TypeName -funktionen med egenskaben Celler.

123 Sub TestCellDataType ()MsgBox "Datatypen i" & Celler (3, 2). Adresse & "er" & TypeName (Celler (3, 2). Værdi)Afslut Sub

Hvis vi kører denne kode ovenfor med regnearket nedenfor, fortæller meddelelsesboksen os, hvilken type data der er i cellen.

Bestemmelse af den valgte objekttype

Vi kan også bruge TypeName til at bestemme, hvilken type objekt der er valgt i et regneark - f.eks. Et område eller et diagram.

123 Sub TestSelection ()MsgBox "Du har valgt et" & TypeName (markering)Afslut Sub

Eller, hvis vi vælger et diagram:

Vi kan bore endnu mere ned og vælge objekterne i diagrammet, og makroen returnerer det, vi har valgt.

Alt dette kan være mest nyttigt i opbygningen af ​​vores VBA -projekt til enten at kontrollere kodeens flow eller for at forhindre fejl i at opstå ved at teste for at sikre, at den korrekte type objekt er valgt, eller at den korrekte type data er indtastet i en celle .

Brug af TypeName på formularkontroller

VBA gør det muligt for os at oprette interaktive formularer, som brugeren kan udfylde og returnere data til koden, der skal bruges på forskellige måder. Vi kan bruge TypeName -operatoren til at bestemme, hvilken type kontrolelementer der bruges på en formular.

I eksemplet herunder har jeg oprettet en brugerformular med en række forskellige kontroller på den - et par tekstbokse, en kombinationsboks, 2 valgknapper, 2 afkrydsningsfelter og 3 kommandoknapper.

Ved hjælp af koden herunder kan jeg bestemme, hvilken type kontrolelementer der er på formularen, ved at gå igennem alle kontrolelementerne på formularen. Jeg har brugt TypeName -funktionen til at returnere en besked med kontroltypen med en VBA IF -erklæring for at kontrollere, hvilken type kontrol der er valgt.

123456 Sub WhatControlType ()Dim ctl som objektFor hver ctl In Me.ControlsMsgBox "Kontrollen er et" & TypeName (ctl)Næste ctlAfslut Sub

Denne type kode kan være meget nyttig, hvis vi ønsker at aktivere eller deaktivere kontroller. I nedenstående kode, når formularen først åbnes, er valgknapperne og afkrydsningsfelterne deaktiveret.

123456789101112 Privat underbrugerForm_Initialize ()Dim ctl som objektFor hver ctl In Me.ControlsHvis TypeName (ctl) = "CheckBox" Såctl.Enabled = FalskElseIf TypeName (ctl) = "OptionButton" Såctl.Enabled = FalskAndetctl.Enabled = SandtAfslut HvisNæste ctlAfslut Sub

For at aktivere valgknapperne og afkrydsningsfelterne har jeg skrevet en yderligere kode bag knappen Aktiver kontrol.

12345678910 Privat under cmdEnable_Click ()Dim ctl som objektFor hver ctl In Me.ControlsHvis TypeName (ctl) = "CheckBox" Såctl.Enabled = Ikke ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Såctl.Enabled = Ikke ctl.EnabledAfslut HvisNæste ctlAfslut Sub

Funktionaliteten i denne kode kan også oprettes ved hjælp af VBA TypeOf Operator.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave