online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon tikobe vom 19.04.2019, 15:49 Options

VLOOKUP - Abbruch bei #NV

Hallo liebes Forum,

habe ein Problem mit dem VLOOKUP in meinem Makro - ich gebe zu wohl ein "Grünschnabel-Problem" aber vielleicht kann dennoch jemand helfen:

Es liegt wohl daran, dass die Verweise mitunter nicht gültig sind (d.h. in der durchsuchten Tabelle sind nicht alle Suchrkriterien zu finden).

Das Makro spuckt den "Fehler 1004 - Anwendungs- oder Objektorientierter Fehler" aus.

Hier der Text:

Sub sverweis2()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim iRow As Integer, iValue As Integer
iValue = 7000

Set ws1 = Sheets("Mittelabfluss_2007")
Set ws2 = Sheets("aktuell")
For iRow = 3 To 7000
ws1.Cells(iRow, 4).Value = _
WorksheetFunction.VLookup(ws1.Cells(iRow, 1).Value, ws2.Range("A2:C7000"), 2, False)
Next iRow

End Sub

_______________________________________

Weiß jemand, wie sich der Fehler abfangen und durch einen Standardwert (hier: 0) ersetzen lässt?

Vielen Dank im Voraus

Grüße Stefan


Antwort schreiben

Antwort 1 von coros vom 20.04.2019, 10:02 Options

Hallo Stefan,

setze vor der VLookup-Befehlszeile ein "On Error Resume Next" und danach ein "On Error GoTo 0". Damit wird bei Auftreten eines Fehlers dieser Übersprungen und danach wird die Fehlerbehandlung wieder eingeschaltet. Dein Makro sieht dann wie folgt aus:

Option Explicit

[b]Sub sverweis2()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim iRow As Integer, iValue As Integer
iValue = 7000

Set ws1 = Sheets("Mittelabfluss_2007")
Set ws2 = Sheets("aktuell")
For iRow = 3 To 7000
[u]On Error Resume Next[/u]
ws1.Cells(iRow, 4).Value = _
WorksheetFunction.VLookup(ws1.Cells(iRow, 1).Value, ws2.Range("A2:C7000"), 2, False)
[u]On Error GoTo 0[/u]
Next iRow
End Sub[/b]


Ich hoffe, dass Du das so meintest. Bei fargen melde Dich wieder.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von tikobe vom 20.04.2019, 12:56 Options

Hi Oliver,

vielen Dank für die Hilfe.

Dein Lösungsvorschlag hat im Grunde funktioniert, nur unerklärlicherweise nicht bei allen Fehlern. Habe mir jetzt wie folgt beholfen:

Sub Forecast_akutell()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim iRow As Integer, iValue As Integer
iValue = 7000
Set ws1 = Sheets("Mittelabfluss_2007")
Set ws2 = Sheets("aktuell")
For iRow = 3 To Range("A65536").End(xlUp).Row
On Error Resume Next
ws1.Cells(iRow, 4).Value = _
WorksheetFunction.VLookup(ws1.Cells(iRow, 1).Value, ws2.Range("A2:C7000"), 2, False)
If ws1.Cells(iRow, 4) = "" Then ws1.Cells(iRow, 4) = 0
Next iRow
End Sub


Damit funktioniert es :-)
Danke nochmal & viele Grüße Stefan

Ähnliche Themen

Abfrage auf ABBRUCH in InputBox
user3  04.05.2007 - 165 Hits - 11 Antworten

Sverweis
mmarion  13.09.2007 - 37 Hits - 1 Antwort

Vlookup
Bruno71  10.10.2007 - 97 Hits - 1 Antwort

Kritischer Abbruch beim Herunterfahren
LouZipher  12.06.2008 - 65 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 07:32:25 2026