02. december 2008 - 02:35Der er
4 kommentarer og 1 løsning
VBA Excel - Exit modul ved modularisering
Når man arbejder med modularisering i VBA har man jo flere sub under hinanden, der er styret af en sub, der kalder de enkelte sub.
Hvis jeg i en af disse sub har en MsgBox, hvor den bare skal fortsætte når der klikkes OK men derimod skal afbryde hele processen når der klikkes på Cancel.
Det er denne afbrydefunktion jeg spørger til, hvordan man gør.
Jeg har forestillet mig det gøres sådan:
Nr = InputBox("Indtast medlemsnummer : ", "Medlemshistorik", , vbOKCancel) If Nr = vbCancel Then Exit Sub (??????????????????)
Else Windows("Historik.xlsm").Activate Sheets("Ark1").Activate Range("B4").Value = Nr End If
Det er naturligvis der hvor der er ??? jeg er i tvivl om, hvad jeg skal skrive...
nr = InputBox("Indtast medlemsnummer : ", "Medlemshistorik", vbOKCancel) If nr = Cancel Then Exit Sub Else Windows("Historik.xlsm").Activate Sheets("Ark1").Activate Range("B4").Value = nr End If End Sub
Ja, men det havde også fungeret hvis jeg ikke arbejdede med modularisering, men i dette tilfælde vil den kun stoppe sub'en og så fortsætte proceduren ved at gå til næste sub.
Jeg søger en løsning der kan afbryde hele modulet og ikke kun den enkelte sub.
Tak for forsøget og håber du eller andre har et bedre bud.
Sub test1() valg = 1 Call test If valg <> 1 Then Exit Sub MsgBox ("Ingen klik på Cancel så sub fortsætter") End Sub
Sub test()
nr = InputBox("Indtast medlemsnummer : ", "Medlemshistorik", vbOKCancel) If nr = Cancel Then valg = 0 Exit Sub Else Windows("Historik.xlsm").Activate Sheets("Ark1").Activate Range("B4").Value = nr End If End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.