Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

on error go to errhandler:

on error go to errhandler:
loca
hallo zusammen
ich habe in meinem vba folgende zeile:
on error go to errhandler:
beim ersten fehler springt das programm tatsächlich dorthin. beim zweiten kommt jedoch ein runtime error 91. was mache ich falsch?
besten dank für die hilfe
gruss
loca

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: on error go to errhandler:
22.07.2011 20:15:23
Josef

Hallo loca,
in deinem "VBA", du meinst wohl in deinem Code.
Zeig mal den ganzen Code, sonst wird's ein Ratespiel.

« Gruß Sepp »

AW: on error go to errhandler:
24.07.2011 17:31:13
loca
Hallo Josef
Hier ein Beispeil
Vielen Dank für Deine Hilfe
Gruss
Loca
https://www.herber.de/bbs/user/75848.xls
Sub Errors()
'Arbeitsplatt mit Zahlen 1-10 in Zeile 1-10 von Spalte A.
'Löschen von 3 und 6 erzeugt für n=3 und n=6 im Makro einen Fehler.
'Bei Fehler für n=3 wird zu ErrHandler gesprungen
'Bei Fehler für n=6 nicht. Wieso?
On Error GoTo ErrHandler:
For n = 1 To 10
Cells.Find(What:=n).Activate
Cells(n, 2).Value = 1
ErrHandler:
Next n
End Sub

Anzeige
AW: on error go to errhandler:
24.07.2011 19:19:22
Josef

Hallo loca,
Sub Errors()
  Dim n As Long
  'Arbeitsplatt mit Zahlen 1-10 in Zeile 1-10 von Spalte A.
  'Löschen von 3 und 6 erzeugt für n=3 und n=6 im Makro einen Fehler.
  'Bei Fehler für n=3 wird zu ErrHandler gesprungen
  'Bei Fehler für n=6 nicht. Wieso?
  
  On Error GoTo ErrHandler:
  
  For n = 1 To 10
    
    Cells.Find(What:=n).Activate
    Cells(n, 2).Value = 1
    
    CatchError:
    
  Next n
  
  Exit Sub
  
  ErrHandler:
  Resume CatchError
End Sub


Sub withoutErrors()
  Dim rng As Range
  Dim lngIndex As Long
  
  For lngIndex = 1 To 10
    Set rng = Cells.Find(What:=lngIndex)
    If Not rng Is Nothing Then Cells(lngIndex, 2) = 1
  Next
  
End Sub



« Gruß Sepp »

Anzeige
AW: on error go to errhandler:
24.07.2011 21:05:37
loca
Hallo Sepp
Vielen Dank, funktioniert perfekt. Die Frage wäre eigentlich erledigt, aber ich verstehe nicht, wieso der Umweg über CatchError nötig ist. Gibt es dafür eine Erklärung?
Gruss und schönen Abend
Loca
AW: on error go to errhandler:
24.07.2011 21:18:27
Josef

Hallo loca,
"gibt es dafür eine Erklärung?"
ja sicher, dein Errorhandler ist für die Katz, weil der Code ja einfach weiterläuft und .Find ja weiterhin einen Fehler hervorruft. Und spätestens beim zweiten Fehler ist dann Sense.

« Gruß Sepp »

Anzeige
AW: on error go to errhandler:
24.07.2011 21:39:21
loca
Entschuldigung, vielleicht ist es etwas zu spät für meine Auffassungsgabe, aber ich verstehe es noch immer nicht: Ich gehe ja im unteren Beispiel nur zu NextN2, damit ich von dort gleich zu NextN1 springe. Wenn ich aber direkt zu NextN1 gehe funktionierts nicht. .Find generiert ja in jedem Fall zwei Fehler.
Sub Errors()
On Error GoTo NextN2:
For n = 1 To 10
Cells.Find(What:=n).Activate
Cells(n, 2).Value = 1
NextN1:
Next n
Exit Sub
NextN2:
Resume NextN1:
End Sub

AW: on error go to errhandler:
24.07.2011 22:21:27
Josef

Hallo loca,
ja, aber durch Resume wird der Fehler gelöscht.

« Gruß Sepp »

Anzeige
AW: on error go to errhandler:
24.07.2011 22:25:11
loca
Super, perfekt. Vielen Dank für die Nette Hilfe!

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige