29. august 2006 - 23:15Der er
12 kommentarer og 1 løsning
Application.Quit ikke det samme som at lukke Excel?
Er det mig der har misforstået noget eller er Application.Quit kommandoen ikke det samme som at trykke på krydset i højre hjørne af Excel programmet?
Grunden til at jeg spørger, er at jeg har en stump kode i mit Workbook_BeforeClose der tjekker om projektet er gemt og hvis ikke gemmer den i en bestemt placering som blandt andet indeholder thisworkbook.path som sti. Når jeg trykker på "krydset i Excel", virker det fint og filen gemmes i den rigtige mappe. Men når jeg gør det ved hjælp af en knap knyttet til en makro med koden Application.Quit, gemmer den filen i roden af det drev som projektet ligger på (det er som om den misser thisworkbook.path).
Er der nogen der har oplevet lignende. Skal jeg evt. bruge en anden kode?
Har jeg også prøvet, det virker heller ikke. Den springer uden om min gem funktion. Den kommer godt nok med min msgBox og fortæller at jeg har gemt filen, men den er ikke gemt. Er det fordi jeg har lavet rod i if funktionerne i workbook_BeforeClose?
Private Sub Workbook_BeforeClose(Cancel As Boolean) If ThisWorkbook.Saved = False Then Svar = MsgBox("Du skal gemme projektet med 'GEM PROJEKT' knappen!!" & vbCrLf & vbCrLf & _ "Vil du gemme nu?" & vbCrLf & vbCrLf & _ "Ja = Gemmer projektet og lukker" & vbCrLf & _ "Nej = Fortsæt med at arbejde på projektet" & vbCrLf & _ "Annuller = LUKKER PROJEKTET, UDEN AT GEMME!!!!", vbYesNoCancel) If Svar = vbCancel Then GoTo Afbryd If Svar = vbYes Then fileTosave = ThisWorkbook.Path & "\Projekt" & "_" & Date & "_" & Format(Time, "HH-MM-SS") & ".xls" ActiveWorkbook.SaveAs fileTosave MsgBox " Du har nu gemt det aktuelle projekt" & " med filnavn " & fileTosave Else Cancel = True End If End If
Afbryd: ThisWorkbook.Saved = True Application.Quit End Sub
Når jeg klikker på Excels egen "close knap"(krydset), kører det fint, og filen gemmes som den skal. Men når jeg bruger min egen "Afslut knap", kommer den frem med min msgBox og spørger om jeg vil gemme og jeg svarer ja. Herefter kommer msgBox frem og fortæller at filen er gemt, men der er ikke gemt nogen fil (progressbaren forneden kører heller ikke!)
Det er som om at ActiveWorkbook.Close og Application.Quit, virker anderledes når de køres fra en makro, end når man bruger Excels egne "knapper/menuer"???)
Det er som om at linien "fileTosave" ikke bliver eksekveret, men alligevel har den det rigtige filnavn i msgBox(men filen er ikke gemt), så et eller andet sted må den jo have kigget i linien??
Ja det var det den startede med. Men efter jeg har lavet de ændringer du har foreslået, gemmer den slet ikke mere(kun en msgBox om at den har gemt filen). Det der undrer mig er at det virker fint hvis man lukker Excel på normalvis, men ikke via en "knap"???
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.