VBA-Typname

In diesem Artikel wird die Verwendung der VBA TypeName-Funktion veranschaulicht.

Die VBA Modellname Die Funktion wird verwendet, um den Typ der in einer Zelle gespeicherten Daten oder den Typ eines ausgewählten Objekts zu bestimmen - zum Beispiel ein Arbeitsblatt, ein Bereich oder eine Zelle oder ein Steuerelement in einem Formular.

Bestimmen des Datentyps in einer Zelle

Um den Datentyp in einer Zelle zu bestimmen, können wir die TypeName-Funktion mit der Cells-Eigenschaft verwenden.

123 Unter TestCellDataType()MsgBox "Der Datentyp in " & Cells(3, 2).Address & " ist " & TypeName(Cells(3, 2).Value)End Sub

Wenn wir diesen Code oben mit dem Arbeitsblatt unten ausführen, wird uns das Meldungsfeld mitteilen, welcher Datentyp sich in der Zelle befindet.

Bestimmen des Typs des ausgewählten Objekts

Wir können TypeName auch verwenden, um zu bestimmen, welcher Objekttyp in einem Arbeitsblatt ausgewählt wurde - beispielsweise ein Bereich oder ein Diagramm.

123 UntertestAuswahl()MsgBox "Sie haben einen " & TypeName(Auswahl) ausgewähltEnd Sub

Oder, wenn wir ein Diagramm auswählen:

Wir können noch weiter nach unten gehen und die Objekte innerhalb des Diagramms auswählen, und das Makro gibt zurück, was wir ausgewählt haben.

All dies kann beim Aufbau unseres VBA-Projekts sehr nützlich sein, um entweder den Fluss des Codes zu steuern oder Fehler zu vermeiden, indem Tests durchgeführt werden, um sicherzustellen, dass der richtige Objekttyp ausgewählt oder der richtige Datentyp in eine Zelle eingegeben wird .

Verwenden von TypeName in Formularsteuerelementen

VBA ermöglicht es uns, interaktive Formulare zu erstellen, die der Benutzer ausfüllen und Daten an den Code zurückgeben kann, die auf verschiedene Weise verwendet werden können. Wir können den TypeName-Operator verwenden, um den Typ der Steuerelemente zu bestimmen, die in einem Formular verwendet werden.

Im folgenden Beispiel habe ich ein Benutzerformular mit einer Vielzahl von Steuerelementen erstellt - ein paar Textfelder, ein Kombinationsfeld, 2 Optionsfelder, 2 Kontrollkästchen und 3 Befehlsschaltflächen.

Mit dem folgenden Code kann ich feststellen, welche Steuerelemente sich im Formular befinden, indem ich alle Steuerelemente im Formular durchlaufe. Ich habe die TypeName-Funktion verwendet, um eine Nachricht mit dem Typ des Steuerelements mit einer VBA-IF-Anweisung zurückzugeben, um zu überprüfen, welcher Steuerelementtyp ausgewählt ist.

123456 Sub WhatControlType()Dim ctl als ObjektFür jeden ctl in Me.ControlsMsgBox "Das Steuerelement ist ein " & TypeName(ctl)Nächster ctlEnd Sub

Diese Art von Code kann sehr nützlich sein, wenn wir Steuerelemente aktivieren oder deaktivieren möchten. Im folgenden Code sind beim ersten Öffnen des Formulars die Optionsschaltflächen und Kontrollkästchen deaktiviert.

123456789101112 Private Sub UserForm_Initialize()Dim ctl als ObjektFür jeden ctl in Me.ControlsWenn TypeName(ctl) = "CheckBox" Thenctl.Enabled = FalseElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = FalseAndersctl.Enabled = TrueEnde WennNächster ctlEnd Sub

Um die Optionsfelder und Checkboxen zu aktivieren, habe ich weiteren Code hinter die Schaltfläche Enable Controls geschrieben.

12345678910 Privates Abo cmdEnable_Click()Dim ctl als ObjektFür jeden ctl in Me.ControlsWenn TypeName(ctl) = "CheckBox" Thenctl.Enabled = Nicht ctl.EnabledElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = Nicht ctl.EnabledEnde WennNächster ctlEnd Sub

Die Funktionalität in diesem Code kann auch mit dem VBA TypeOf Operator erstellt werden.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave