Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA zickt: ISERROR & IF

VBA zickt: ISERROR & IF
03.12.2013 13:36:14
Simon
Hallo Ihr Lieben,
ich habe ein kleines Problem beim Aufsatz einer VBA Funktion, wo ich die IF Funktion mit ISERROR verknüpfen will.
Das aufgesetzte Makro sieht folgendermaßen aus:
Function recon(testValue As Variant, testrng As Range)
testValue = WorksheetFunction.VLookup(testValue, testrng, 1, False)
If IsError(testValue) Then
recon = "missing"
Else
recon = "OK"
End If

Zweck des Makros ist über die VLOOKUP Funktion herauszufinden, ob bestimmte Elemente in einem zu untersuchenden Bereich enthalten sind, da VLOOKUP bei matchen eines „relevanten Wertes“ den gefunden Wert wieder gibt, ansonsten ein Wertefehler zurückspielt.
Leider scheitere ich, wie eingangserwähnt, an der ISERROR Funktion.
Diverse Versuche mit On Error goto oder WORKSHEETFUNKTION.ISERROR etc. sind gescheitert.
Auch der Versuch mit CVERR(xlerrvalue) hat mir zur Lösung des Problems nicht beigetragen.
Hat jemand von euch eine zündende Idee?
Beste Grüße
Simon

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA zickt: ISERROR & IF
03.12.2013 14:22:42
Klaus
Hallo Simon,
wozu SVERWEIS? Benutze ZÄHLENWENN, dann kannst du dir das ganze "IsError" sparen!
Function recon2(TestValue As Variant, TestRng As Range)
If WorksheetFunction.CountIf(TestRng, TestValue) = 0 Then
recon2 = "missing"
Else
recon2 = "OK"
End If
End Function
Grüße,
Klaus M.vdT.

AW: VBA zickt: ISERROR & IF
03.12.2013 14:33:35
Rudi
Hallo,
wenn du Application.VLookUp() benutzt, wird ein Fehler zurückgegeben,. Bei Worksheetfunction.Vlookup() wird einer erzeugt.
Aber wie Klaus schon geschrieben hat ist CountIf besser.
Gruß
Rudi

AW: VBA zickt: ISERROR & IF
03.12.2013 14:47:41
Simon
Ihr beiden seit die Besten.
Ich wäre nicht auf die Idee gekommen Countif zu benutzten, da ich gerade ein Brett vorm Kopf habe.
Ferner, ist die erklärte Unterscheidung zwischen Application und Worksheetfunction sehr hilfreich.
Jetzt frage ich mich nur, warum man nicht immer Application anstatt Worksheetfunction benutzt.
Auf jeden Fall: Danke!!!!

Anzeige
...Weil Ersteres vom VBE-Intellisense nicht ...
03.12.2013 15:13:34
Luc:-?
…unterstützt wird, man auch „nur“ mit der WorksheetFunction-Klasse klar kommen kann (ordentliche FehlerBehandlung sollte professionell ohnehin angesagt sein!) und man eigentlich alles sauber referenzieren sollte, auch, wenn es auch anders geht.
Außerdem erfordert die Anwendung nur mit Application eine Variant-Variable, falls der Rückgabewert der Fkt einer solchen übergeben wdn soll, sonst entsteht ebenfalls ein Fehler.
Gruß Luc :-?

Noch ein Unterschied ...
03.12.2013 15:16:19
Klaus
... Simon,
deine VLOOKUP Lösung hätte nur in der ersten Spalte der Range geschaut, COUNTIF schaut in der gesamten Range.
Und danke für die Rückmeldung!
Grüße,
Klaus M.vdT.
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige