Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datentyp eines Variant-Arrays ermitteln

Forumthread: Datentyp eines Variant-Arrays ermitteln

Datentyp eines Variant-Arrays ermitteln
29.10.2012 08:46:59
Michael
Hallo.
Ich lese eine Tabelle in ein zweidimensionales Array des Datentyps Variant aus.
Dim Daten(1 to 100,1 to 100) as Variant
Nun weist VBA jedem Feld des Array neben dem Datentyp Variant noch zusätzlich den eigentlichen Typ der Daten zu, im Lokal-Fenster steht dann z.B. Variant/Date oder Variant/String.
Ist es möglich diesen zweiten angezeigten Datentyp irgendwie zu ermitteln?
Danke
Michi

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datentyp eines Variant-Arrays ermitteln
29.10.2012 09:18:31
Tino
Hallo,
zum Beispiel so
Debug.Print TypeName(Daten(2, 1))
Gruß Tino

AW: Datentyp eines Variant-Arrays ermitteln
29.10.2012 09:18:51
Luschi
Hallo Michael,
benutze die Vba-Funktion VarType.
MsgBox VarType(Daten(1,4))
Da erhält Dman dann einen Zahlenwert, der in der Vba-Hilfe zu dieser Funktion gut doumentiert ist.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Datentyp eines Variant-Arrays ermitteln
29.10.2012 09:36:48
Michael
Hi Luschi, Tino.
Danke für den Wink, hab nach DataTyp gesucht :-/
Mit VarType funktioniert es super!
Michi
;
Anzeige
Anzeige

Infobox / Tutorial

Datentyp eines Variant-Arrays ermitteln


Schritt-für-Schritt-Anleitung

Um den Datentyp eines Variant-Arrays in VBA abzufragen, kannst Du die folgenden Schritte befolgen:

  1. Definiere ein Variant-Array: Erstelle ein zweidimensionales Array mit dem Datentyp Variant. Beispiel:

    Dim Daten(1 To 100, 1 To 100) As Variant
  2. Fülle das Array: Weisen Daten in das Array zu, beispielsweise:

    Daten(1, 1) = "Hallo"
    Daten(1, 2) = 42
    Daten(1, 3) = #2023-01-01#
  3. Ermittle den Datentyp: Verwende die Funktion TypeName oder VarType, um den Typ der Daten zu ermitteln:

    Debug.Print TypeName(Daten(1, 1)) ' Gibt "String" zurück
    MsgBox VarType(Daten(1, 2)) ' Gibt den entsprechenden Zahlenwert zurück
  4. Überprüfe die Ausgabe: Die Ergebnisse kannst Du im Direktfenster oder in einer MessageBox sehen.


Häufige Fehler und Lösungen

  • Fehler: "Typmismatch" beim Zugriff auf Array-Elemente.

    • Lösung: Stelle sicher, dass das Element im Array tatsächlich einen Wert hat. Prüfe die Zuweisungen vor der Abfrage.
  • Fehler: Falsche Rückgabewerte mit VarType.

    • Lösung: Achte darauf, dass das Element im Array initialisiert wurde. Uninitialisierte Elemente geben Empty zurück.

Alternative Methoden

Neben der Verwendung von TypeName und VarType gibt es auch andere Methoden, um den Datentyp eines Variant-Arrays zu ermitteln:

  • Über Schleifen: Du kannst durch das Array iterieren und den Datentyp jedes Elements abfragen:

    Dim i As Integer, j As Integer
    For i = LBound(Daten, 1) To UBound(Daten, 1)
      For j = LBound(Daten, 2) To UBound(Daten, 2)
          Debug.Print "Daten(" & i & ", " & j & ") ist vom Typ: " & TypeName(Daten(i, j))
      Next j
    Next i
  • Nutzung von IsNumeric: Überprüfe, ob die Werte im Array numerisch sind:

    If IsNumeric(Daten(1, 2)) Then
      MsgBox "Der Wert ist numerisch."
    End If

Praktische Beispiele

Hier sind einige praktische Beispiele, um den Datentyp eines Variant-Arrays zu ermitteln:

  • Beispiel 1: Ein Array mit verschiedenen Datentypen.

    Dim Daten(1 To 3) As Variant
    Daten(1) = "Text"
    Daten(2) = 123.45
    Daten(3) = #01/01/2023#
    
    For i = LBound(Daten) To UBound(Daten)
       Debug.Print "Daten(" & i & ") ist vom Typ: " & TypeName(Daten(i))
    Next i
  • Beispiel 2: Verwendung von VarType zur Unterscheidung zwischen verschiedenen Typen.

    Dim Typ As Integer
    Typ = VarType(Daten(2))
    MsgBox "Der Typ ist: " & Typ ' Gibt 5 zurück für Double

Tipps für Profis

  • Nutze die Konstante vbString, vbDouble etc., um die Rückgabewerte von VarType leichter zu interpretieren.

  • Wenn Du ein großes Array hast und häufig den Datentyp abfragen musst, kann es effizienter sein, ein zusätzliches Array für die Typen zu führen.

  • Dokumentiere Deine Arrays und deren Datentypen, um Verwirrung zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich den Datentyp eines leeren Variant-Arrays ermitteln?
Nein, ein leeres Array hat keinen spezifischen Datentyp. Der Rückgabewert von TypeName wäre "Empty".

2. Gibt es Unterschiede zwischen TypeName und VarType?
Ja, TypeName gibt den Namen des Datentyps als String zurück, während VarType einen Zahlenwert zurückgibt, der einen bestimmten Datentyp repräsentiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige