zu Spungmarke in anderem Modul springen
Betrifft: zu Spungmarke in anderem Modul springen
von: ela
Geschrieben am: 08.08.2014 15:23:01
Hallo,
ich bin gerade dabei meinen Code zu modularisieren.
Den Code den ich in Modul1 "outsource" enthält eine Sprungmarke, welche in Tabelle1 definiert ist.
Hier ein kurzes Codebsp:
Sub Test ()
dim zaehler as integer
dim nenner as integer
'code
'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
Modul1.teilen zaehler, nenner
'code
beenden:
'code
End Sub
Sub teilen(zaehler as integer, nenner as integer)
dim ergebnis as integer
on error goto beenden
ergebnis = zaehler/nenner
on error goto 0
End Sub
Geht es nun, dass wenn in Modul1.teilen() ein fehler auftritt, dass die prozedur abbricht und zur sprungmarke "beenden" in Tabelle1.Test springt?
Bzw wie programmiere ich das?
Vielen dank für eure Hilfe
Grüße
Ela
Betrifft: AW: zu Spungmarke in anderem Modul springen
von: Arthur
Geschrieben am: 08.08.2014 15:34:57
Hallo Ela.
Beruhigender Weise geht das nicht - hoffentlich. Nutze dafür anstelle einer Sub eine Function und gebe als Returnwert die Erro.Number zurück. Damit bist du frei in Test() alles zu tun, was du möchtest.
Gruß, Arthur
Betrifft: AW: zu Spungmarke in anderem Modul springen
von: Nepumuk
Geschrieben am: 08.08.2014 15:36:59
Hallo,
im Prinzip könntest du das so machen:
Sub Test()
Dim zaehler As Integer
Dim nenner As Integer
'code
'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
If Modul1.teilen(zaehler, nenner) Then
'code
End If
'code
End Sub
Public Function teilen(zaehler As Integer, nenner As Integer) As Boolean
Dim ergebnis As Integer
On Error GoTo err_exit
ergebnis = zaehler / nenner
teilen = True
err_exit:
End Function
Oder du schleifst den Fehler in die Hauptroutine durch. Denn du willst ja wahrscheinlich nicht nur zum testen teilen, sondern du willst auch das Ergebnis zurück bekommen.
Sub Test()
Dim zaehler As Integer
Dim nenner As Integer
Dim ergebniss As Integer
On Error GoTo err_exit
'code
'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
On Error GoTo Notausgang
ergebniss = Modul1.teilen(zaehler, nenner)
On Error GoTo err_exit
'code
Notausgang:
On Error GoTo err_exit
'code
err_exit:
End Sub
Public Function teilen(zaehler As Integer, nenner As Integer) As Integer
teilen = zaehler / nenner
End Function
Gruß
Nepumuk
Beiträge aus den Excel-Beispielen zum Thema "zu Spungmarke in anderem Modul springen"