Just nu i M3-nätverket
Jump to content

Application.quit strul


Micke_Sthlm

Recommended Posts

Hej

 

Jag har en knapp som ska avsluta min applikation och excel. Jag har också en event i before_close som kör en underfunktion och en sub för en typ av säkerhetskopering. Allt funkar bra sålänge jag stoppar excel från "krysset". Om jag dock använder knappen som kör appication.quit så händer följande:

Mycket riktigt så körs min rutin i before_close, dock i funktionen den innehåller som ska returnera true eller false, så returneras alltid false varvid inte min slutrutin körs.

Om jag använder thiswoorkbook.close så funkar rutinen igen men då stängs ju givetvis inte excel.

 

Någon som har några ideer? Är det något som nollställs tidigt vid application.quit så att inte funktionen fungerar?

 

Mvh Micke

Link to comment
Share on other sites

Jag testar en liten rutin:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Debug.Print "Cancel före " & Cancel
Blad1.Range("a1") = Cancel
Cancel = True
Blad1.Range("a2") = Cancel
Debug.Print "Cancel efter " & Cancel
End Sub

samt en knapp

 

 

Private Sub CommandButton1_Click()
Application.Quit
End Sub

och det är stört omöjligt att stänga ned Excel. Detta i Excel 2007, det fungerar alltså som förväntat.

 

Nu kanske detta inte stämmer med ditt problem men testa vad som sker om du kör koden ovan. I din egen kod, skriv ut lite debug-värden på bladet eller liknande. Kanske leka lite med Assert också för den delen.

 

Det är mina tips i denna stund

Link to comment
Share on other sites

  • 2 weeks later...

Jag klurade lite och kom på att eftersom avslutet skedde via en rutin under en knapp så hanterade Excel (2k) Before_close som en underrutin och således "nollades" alla varibler.

Jag löste det som så här:

 

Lade in koden (kopierade) från before_close in under koden för knappen "Avslut" och för att inte Eventen skulle köras så avslutade jag med

 

Application.EnableEvents = False

och sedan

Application.quit

 

Vóila!

Hade förstås kunna koda om avslutande rutin till en subrutin... Får kanske fixa det sedan...

 

Mvh Micke

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...