Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1072to1076
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

Try/Except in VBA?

Try/Except in VBA?
30.04.2009 08:21:38
Daniel
Hallo Zusammen,
in einem meiner Sheets habe ich einen selbst eingebauten Speichervorgang.
Die Datei wird dabei im Netzwerk gespeichert. Ab und An kommt es zu Netzwerkproblemen, die dazu führen, dass es einen Fehlermeldung gibt und die Anwendung dadurch unterbrochen wird. Abgesehen davon, dass es nicht zu Netzwerkausfällen kommen sollte:
welche Möglichkeiten habe ich in VBA damit umzugehen? In anderen Sprachen gibt es try/except.
Wie kann man das in VBA lösen?
Grüße,
Daniel

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Try/Except in VBA?
30.04.2009 09:26:03
Klaus
Moin Daniel,
in VBA kann man den Abbruch durch Fehler mit einem GOTO unterbinden:

Sub Test()
On Error Goto MyErrHndl
(dein Code)
Goto NoError
MyErrHndl:
msgbox("Fehler!)
NoError:
End Sub


Brutal, unsauber, unschön, funktioniert. Aber ich lass mal offen, hoffentlich kommt noch eine elegantere Lösung ...
mfg
Klaus M.vdT.

AW: Try/Except in VBA?
30.04.2009 09:32:43
fcs
Hallo Daniel,
ich kenne keine Möglichkeit von VBA aus direkt den Zustand der Netztverbindung vom Betriebssystem abzufragen.
VBA hat aber auch eine Möglichkeit, Fehler kontrolliert zu behandeln.
Hier mal die Grundstruktur mit ein paar Varianten. Innerhalb der Fehlerbehandlung kann man natürlich auch alle Variablen und Objekteigenschaften auswerten, um die Folgeaktionen zu steuern. Die Fehlerbehandlung wird typischer Weise am Ende von Prozeduren eingefügt.
Gruß
Franz

Sub aaTest()
'Hier die Deklaration von Variablen
On Error GoTo Fehler
'ab hier dann der übliche Code
Fehler01: 'Sprungadresse wenn Fehler-Nr. 1001 auftritt
'ab hier dann der übliche Code - Forsetzung
'Fehlerbehandlung
Fehler:   'Sprungadresse aus der On Error - Anweisung
With Err
If .Number  0 Then 'ein Fehler ist aufgetreten
Select Case .Number
'Für jede Fehler-Nummer, die besonders Behandelt werden soll _
Eine Case-Anweisung einfügen
Case 1000
Resume Next 'Mit nachfolgender Zeile weitermachen
Case 1001
Resume Fehler01 'An Sprungadresse weitermachen
Case 1002
'Hier Code zur Krrektur
Resume 'in Fehlerzeile weitermachen
Case Else
'Fehler-Meldung anzeigen und Prozedur beenden
MsgBox "Fehler-Nr. : " & .Number & vbLf & .Description
End If
End With
'ab hier dann noch Anweisungen, die auch nach einem Fehler noch zwingend _
ausgeführt werden sollen. z.B.
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge