Thema Datum  Von Nutzer Rating
Antwort
14.09.2022 16:34:13 marv
Solved
Blau werte vergleichen
15.09.2022 09:47:43 Mase
*****
Solved

Ansicht des Beitrags:
Von:
Mase
Datum:
15.09.2022 09:47:43
Views:
366
Rating: Antwort:
 Nein
Thema:
werte vergleichen

ich habe 2 Arrays und würde gerne für jeden eintrag in Array1 prüfen, ob dieser in Array2 auftaucht. 

.Match ist die richtige Methode, aber Application im Vergleich zur .WorksheetFunction die besser Wahl der Klasse.

 

Warum?

.WorksheetFunction erzeugt einen Laufzeitfehler, falls ein item nicht gefunden wird => Programm bricht ab.

.Match erzeugt zwar auch einen Fehler, reicht diesen aber durch => Programm bricht nicht ab, Fehler kann zur Laufzeit behandelt werden.

Was Du nun einsetzen musst, ist, eine Variable von einem Datentyp, welcher den durchgereichten Fehler handeln kann.

Das machst Du mit einer Variant-Variablen.

 

Jetzt, wo der Fehler in einer Variablen festgehalten werden kann, braucht es eine Funktion, um diese Variable auszuwerten.

Diese Funktion heisst IsError(). Die ist sogar so praktisch, dass Du die Funktion ohne Variant-Variable direkt mit einer Anweisung füttern kannst.

(Trotzdem ist es wichtig zu wissen, dass potentielle Fehlermeldungen in einer Variant-Variablen gespeichert werden kann.)

 

Daraus folgt:

Prüfe jeden Datenfeld-Wert von arr1, ob in arr2 vorhanden.

 

    For Each item In arr1
        If IsError(Application.Match(item, arr2, 0)) Then
            Debug.Print "Nicht gefunden"
        Else
            Debug.Print "gefunden"
        End If
    Next item

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
14.09.2022 16:34:13 marv
Solved
Blau werte vergleichen
15.09.2022 09:47:43 Mase
*****
Solved