Hallo maybebaby,
einerseits müsstest Du doch, wenn Du auf "Debuggen" klickst, genau in der Zeile landen, in der der Fehler auftritt (ist zumindest bei mir so).
Andererseits kannst Du Dir eine Fehlerbehandlungsroutine einbauen. Ich hab das mal testweise gemacht:
Code:
Sub Makro1()
'
' Makro1 Makro
' Makro am 29.06.2007 von Ronald Höhn aufgezeichnet
'
'
On Error GoTo 60000
10 Range("B23").Selectx
20 ActiveCell.FormulaR1C1 = "=SUM(R[-13]C:R[-1]C)"
30 Range("B24").Select
Exit Sub
60000 i = MsgBox("Fehler: " + Str(Err) + " in Zeile" + Str(Erl), vbAbortRetryIgnore)
If i = vbRetry Then
Resume
ElseIf i = vbAbort Then
Exit Sub
Else
Resume Next
End If
End Sub
Zeile 10 ist falsch (weil da habe ich aus dem "Select" ein "Selextx" gemacht, was es ja nun mal nicht gibt.
Dann habe ich Zeilennummern vor jede Zeile geschrieben.
Wenn in diesem Makro nun ein Fehler auftritt, springt er in die Fehlerbehandlung, zeigt Dir die Fehlernummer und Zeilennummer an.
Wenn Du auf "Wiederholen" klickst, versucht das Programm nochmal, die Zeile auszuführen (was in diesem Fall natürlich nichts nützt, weil die dann immer noch falsch ist), mit "Ignorieren" macht er in der nächsten Zeile weiter und mit "Abbruch" wird das Makro verlassen.
Das kann mann dann natürlich noch weiter ausfeilen, z.B. mit "Resume xxx", wobei xxx für eine bestimmte Zeilennummer steht. Dann würde in der bestimmten Zeile xxx weiter gemacht werden.
Hat Dir das geholfen?
Viele Grüsse
Ronald