Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 13 bei VLookup mit Variant

Laufzeitfehler 13 bei VLookup mit Variant
11.04.2016 11:25:41
Moe
Hi liebe Forum-User,
vorab ein Dankeschön für die Antworten auf meine Frage.
Ich muss bei meinem Problem Daten (ca. 700.000 Zeilen) aus einer Matrix (2 Spalten; Index: Spalte 4; Gesuchte Daten: Spalte 5) über den SuchIndex (ca. 430.000 Daten) Spalte 1 ermitteln und möchte diese in Spalte 7 rausgeben.
Nun habe ich versucht dies mithilfe von Vlookup und Variant zu lösen.
Dabei sind einige Schwierigkeiten aufgetreten, wo ich momentan keine Lösung für habe.
Unter anderem erscheint jedesmal die Meldung "Laufzeitfehler 13: Typen unverträglich"
Ich hoffe, dass Ihr mir meine Fehler im Code aufzeigen könnt:
Sub VlookUpTest3()
Workbooks("ELD.xlsm").Worksheets("ELD_Daten").Activate
Dim varCRMMATR As Variant
Dim varPIMMATR As Variant
Dim varCALCCRM As Variant
Dim varCALCPIM As Variant
Dim varCALCELD As Variant
Dim varCRMINDX As Variant
Dim varPIMINDX As Variant
Dim zeileMaxCRM As Long
Dim zeileMaxPIM As Long
Dim zeileMaxELD As Long
Dim i As Long
zeileMaxCRM = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
zeileMaxPIM = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
zeileMaxELD = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
Range(Cells(2, 1), Cells(zeileMaxCRM, 3)).Select
varCRMMATR = Selection
Range(Cells(2, 4), Cells(zeileMaxPIM, 5)).Select
varPIMMATR = Selection
Range(Cells(2, 5), Cells(zeileMaxELD, 5)).Select
varCALCCRM = Selection
For i = 1 To zeileMaxELD
varCALCCRM(i, 1) = WorksheetFunction.VLookup(varCRMINDX(i, 1), varPIMMATR, 2, False)
Next i
Range(Cells(2, 7), Cells(zeileMaxELD, 7)).Select
Selection = varCALCCRM
End Sub

LG Moe

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13 bei VLookup mit Variant
11.04.2016 12:25:23
Fennek
Hallo Moe,
hast du den 'sverweis' schon einmal als Formel im Blatt versucht?
Mfg

AW: Laufzeitfehler 13 bei VLookup mit Variant
11.04.2016 14:43:36
Daniel
Hi
das Problem ist, dass Worksheetfunction.VLookUp(,,,False) immer einen Fehlerabbruch erzeugt, wenn es den Suchbegriff nicht finden kann.
Das macht es auch dann, wenn die aufnehmende Variable vom Typ VARIANT ist und damit theoretisch einen Fehlerwert aufnehmen könnte.
Wenn du das VLookUp-Ergebnis auch bei einem Fehlerergebnis in eine Variantvariable schreiben willst, dann musst du Application.VLookUp(,,,False) verwenden.
(frag mich jetzt bitte nicht warum, das haben die Jungs von MS halt so programmiert)
deine Programmierung ist aber umständlich.
einfacher und genauso schnell wäre es, wenn du die SVerweisformel direkt in die Zellen schreibst.
btw wenn du mit der genannten Datenmenge vernünftig arbeiten willst, dann musst du so vorgehen:
1. die Suchmatrix nach der ersten Spalte aufsteigend sortieren
2. den VLookUp mit 4. Parameter = TRUE verwenden
3. zum Überprüfen, ob ein Suchwert vorhanden ist oder nicht so vorgehen:
=IF(VLookUp(Suchbegriff,Suchmatrix,1,True)=Suchbegriff,VLookUp(Suchbegriff,Suchmatrix,2,True),"")
der VLooUp mit 4. Paramter = True ist bei der genannten Datenmenge um Welten!!! scheller als sein "falscher" Bruder.
Das liegt daran, dass er sortierte Daten erfordert und daher eine wesentlich schnellere Suchmethode verwenden kann.
Man muss dann zwar erst mal prüfen, ob der Suchbegriff überhaupt in der Liste drin ist, aber das ist ein im Vergleich zur Zeitersparnis äusserst geringer Zusatzaufwand.
Im Sortieren selbst ist Excel sehr schnell, das sollte man hier unbedingt ausnutzen.
Gruß Daniel

Anzeige
AW: Laufzeitfehler 13 bei VLookup mit Variant
11.04.2016 17:36:53
Moe
Hi Daniel,
danke für den ausführlichen Tipp.
Ich setz mich mal an die Umsetzung.
LG Moe

Das wird daran liegen, dass beim Weg über ...
12.04.2016 00:25:39
Luc:-?
…das „Container-KlassenModul“ (die diesem entsprechende DLL) eine Prüfung der ArgumentDaten und ErgebnisWerte erfolgt, die beim nicht vom VBA-Intellisense unterstützten DirektWeg über Application entfällt. Alle XlFktt, die dieses Modul enthält, sind auch dem Application-Objekt zuorden­bar, alle weiteren nicht!
Gruß, Luc :-?
Besser informiert mit …
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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