Office: (Office 2016) VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum???

Helfe beim Thema VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum??? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Aktuell arbeite ich viel mit Arrays und dabei bin ich auf etwas gestoßen was ich nicht nachvollziehen kann. Vielleicht könnt Ihr mir... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Tauchmann, 30. September 2017.

  1. Tauchmann Erfahrener User

    VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum???


    Hallo zusammen,

    Aktuell arbeite ich viel mit Arrays und dabei bin ich auf etwas gestoßen was ich nicht nachvollziehen kann. Vielleicht könnt Ihr mir da weiterhelfen?

    Wenn ich in einen Array einen Vergleich mit einer 0 mache, wobei die Array Position komplett leer ist, wird der Vergleich mit WAHR zurückgegeben obwohl eigentlich der Vergleich „LEER = 0“ ein FALSE zurückgeben müsste.

    a(1) --> LEER
    " If a(1) = 1 " --> WAHR
    " If a(1) = "" " --> WAHR

    Ich kann mir das einfach nicht erklären? Leider führt dieser Umstand zu einem großen Problem bei mir ☹.

    Ich habe mal den Beispiel Code angefügt.

    Code:
    Sub Test()
        Dim a() As Variant
        Dim i As Integer
     
        ReDim a(1 To 1)
     
        If a(1) = 0 Then
            i = i
        End If
       
    End Sub
    Ich würde mich sehr über eine Antwort von Euch freuen?
    Schöne Grüße
    Tauchmann
     
    Tauchmann, 30. September 2017
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    worum geht es denn bei deinem eigentlichen Problem - also weshalb musst du denn unterscheiden, ob das Arryfeld leer oder 0 ist?

    Bis später,
    Karin
     
    Beverly, 1. Oktober 2017
    #2
  3. Tauchmann Erfahrener User
    Hallo Karin,
    Danke für Deine Antwort.
    Eigentlich ist doch 0 und LEER ein unterschiedlicher Ausdruck - ob nix drinn steht oder eine Null ist doch ein Unterschied?

    In dem Macro baue ich mir ein 2 dimensonales Array auf wobei die "erste" Zeile und "erste" Spalte jeweils Vergleichswerte enthalten bzw. bei nicht Vorkommen erweitert werden sollen. In meinem Suchabschnitt wird das Feld LEER im Vergleich mit 0 gefunden und trägt Werte dann ein. Beim nächsten Durchlauf wird leider wieder die gleich Position gefunden und somit die Spaltenüberschrift wo eigentlich 0 drinne steht überschrieben.

    Warum erkennt VBA keinen Unterschied ob 0 oder LEER wenn der Array Variant ist????

    Schöne Grüße
    Tauchmann

    P.S. Meine Idee ist jetzt die 0 vorzudefinieren, aber das ist nicht der Vater des Gedanken.
     
    Tauchmann, 2. Oktober 2017
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum???

    Hi,

    Leer und 0 sind offensichtlich identisch - gleichgültig ob in einem Arrayfeld oder in einer Zelle.

    Wenn du etwas ins Array schreibst, wieso kann dann die selbe Position gefunden werden? Wie sieht denn dein Code aus?

    Bis später,
    Karin
     
    Beverly, 2. Oktober 2017
    #4
  5. Tauchmann Erfahrener User
    Hallo Karin,

    ich denke folgendes könnte die Ursache dafür sein (hatte etwas Zeit darüber nachzudenken :) .
    Da der Datentyp Variant alles sein kann wie String, Long etc. müsste ja theoretisch auch der Ausgangwert bei der Initialiserung des Arrays mit Variant alle Ausgangswerte erlaubt sein. Da bei den Zahl-Datentypen der Ausgangswert der Initialisieurng eine 0 ist, ist es eigentlich richtig was da passiert ist. Ich habe den Array auf Double umgeändert und der Ausgangswert der einzelnen Arrayposition ist eine 0. Könnte also gut möglich sein das das der Grund ist???
    Was meinst du dazu?

    Schöne Grüße
    Tauchmann
     
    Tauchmann, 3. Oktober 2017
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi,

    es ist doch logisch, dass ein Feldinhalt nicht den Wert "Leer" annehmen kann, wenn das Array als Zahlenwert (also nicht nur Double sondern auch Long oder Integer) deklariert ist und nicht als Variant, denn "Leer" gibt es nicht in der Zahlenabfolge :)


    Bis später,
    Karin
     
    Beverly, 3. Oktober 2017
    #6
Thema:

VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum???

Die Seite wird geladen...
  1. VBA - If Vergleich in einem Array erkennt 0 = LEER als TRUE --> warum??? - Similar Threads - VBA Vergleich Array

  2. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  3. VBA - Zwei Tabellen anhand ID zusammenfügen

    in Microsoft Excel Hilfe
    VBA - Zwei Tabellen anhand ID zusammenfügen: Hallo zusammen, ich habe folgendes Problem: Es gibt eine „Mutterliste“ mit Bezeichnungen, ID und Status. Die „Kinderlisten“ haben in unterschiedlicher Reihenfolge die selben IDs aber...
  4. VBA | Zelle auslesen,vergleichen und Hintergrund Zelle färben

    in Microsoft Excel Hilfe
    VBA | Zelle auslesen,vergleichen und Hintergrund Zelle färben: Hallo, es klingt einfach aber ich komm einfach nicht zur Lösung. Ich bräuchte für folgendes ein makro. Es soll in Spalte A nach "geplant" suchen, wenn gefunden dann suche von in der Zeile wo...
  5. Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

    in Microsoft Excel Hilfe
    Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter: Hallo zusammen, ich arbeite auf Grundlagenniveau und mein Makro soll Folgendes: Tabellenblatt 1: In Spalte B sind 5-stellige Werte Tabellenblatt 2: In Spalte C sind die gleichen 5-stelligen...
  6. Excel VBA Datum vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Datum vergleichen: Hallo, ich habe folgendes Problem: ich will ein Datumsbereich vergleichen z.B. Spalte I ist ein Datum "04.01.2020" eingetragen. In Spalte J "18.04.2021". In ein neuen Tabellenblatt ist dann...
  7. Vergleich von zwei Spalten und fehlende ergänzen mittels VBA

    in Microsoft Excel Hilfe
    Vergleich von zwei Spalten und fehlende ergänzen mittels VBA: Hallo, In meiner Tabelle (siehe Anhang) möchte ich die Bezeichnungen aus dem Sheet "Data" Spalte B mit der Liste auf dem Sheet "Source" ab A:25 vergleichen und fehlende Einträge automatisch...
  8. VBA Problem = Werte in 2 Dateien vergleichen und Zeilen kopieren

    in Microsoft Excel Hilfe
    VBA Problem = Werte in 2 Dateien vergleichen und Zeilen kopieren: Hallo Community, ich habe folgendes Problem. ich habe eine Liste in dieser sind Artikel aufgezählt. In Spalte A sind spezielle Nummern zu jedem Artikel (wie z.B. in A2 = 1348237 , A3 =...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden