VBA TypeName

Denne artikkelen vil demonstrere bruken av VBA TypeName -funksjonen.

VBA TypeName Funksjon brukes til å bestemme typen data som er lagret i en celle, eller typen av et valgt objekt - for eksempel et regneark, område eller celle, eller en kontroll på et skjema.

Bestemme datatypen i en celle

For å bestemme datatypen i en celle kan vi bruke TypeName -funksjonen med Cells -egenskapen.

123 Sub TestCellDataType ()MsgBox "Datatypen i" og celler (3, 2). Adresse og "er" og typenavn (celler (3, 2). Verdi)Slutt Sub

Hvis vi kjører denne koden ovenfor med regnearket nedenfor, vil meldingsboksen fortelle oss hvilken type data som er i cellen.

Bestemme hvilken type objekt som er valgt

Vi kan også bruke TypeName til å bestemme hvilken type objekt som er valgt i et regneark - for eksempel et område eller et diagram.

123 Sub TestSelection ()MsgBox "Du har valgt et" & TypeName (utvalg)Slutt Sub

Eller, hvis vi velger et diagram:

Vi kan bore ned enda mer og velge objektene i diagrammet, og makroen vil returnere det vi har valgt.

Alt dette kan være mest nyttig for å bygge vårt VBA -prosjekt for å enten kontrollere strømmen av koden, eller for å forhindre at det oppstår feil ved å teste for å sikre at riktig type objekt er valgt, eller at riktig type data legges inn i en celle .

Bruke TypeName på skjemakontroller

VBA lar oss lage interaktive skjemaer som brukeren kan fylle ut og returnere data til koden som skal brukes på forskjellige måter. Vi kan bruke TypeName -operatoren til å bestemme hvilken type kontroller som brukes på et skjema.

I eksemplet nedenfor har jeg opprettet et brukerskjema med en rekke kontroller på det - et par tekstbokser, en kombinasjonsboks, 2 alternativknapper, 2 avmerkingsbokser og 3 kommandoknapper.

Ved å bruke koden nedenfor kan jeg finne ut hvilken type kontroller som er på skjemaet ved å gå gjennom alle kontrollene på skjemaet. Jeg har brukt TypeName -funksjonen for å returnere en melding med typen kontroll med en VBA IF -erklæring for å kontrollere hvilken type kontroll som er valgt.

123456 Sub WhatControlType ()Dim ctl som objektFor hver ctl In Me.ControlsMsgBox "Kontrollen er et" & TypeName (ctl)Neste ctlSlutt Sub

Denne typen kode kan være veldig nyttig hvis vi ønsker å aktivere eller deaktivere kontroller. I koden nedenfor, når skjemaet først åpnes, er alternativknappene og avmerkingsboksene deaktivert.

123456789101112 Private Sub UserForm_Initialize ()Dim ctl som objektFor hver ctl In Me.ControlsHvis TypeName (ctl) = "CheckBox" Dactl.Enabled = FalskElseIf TypeName (ctl) = "OptionButton" Deretterctl.Enabled = FalskEllersctl.Enabled = TrueSlutt omNeste ctlSlutt Sub

For å aktivere alternativknappene og avmerkingsboksene, har jeg skrevet ytterligere kode bak knappen Aktiver kontroller.

12345678910 Privat sub cmdEnable_Click ()Dim ctl som objektFor hver ctl In Me.ControlsHvis TypeName (ctl) = "CheckBox" Dactl.Enabled = Ikke ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Deretterctl.Enabled = Ikke ctl.EnabledSlutt omNeste ctlSlutt Sub

Funksjonaliteten i denne koden kan også opprettes ved hjelp av VBA TypeOf Operator.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave