作者Lagrange (逆光)
看板Office
標題[問題] VBA Application.Quit 無法執行
時間Thu Sep 10 08:42:38 2015
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體: Excel
版本: 2003
大家好,最近在自學VBA,想請問Application.Quit無法執行的原因?
1.原本只有如下,能夠正常執行退出Excel
Private Sub Workbook_Open()
Dim checkterm As Variant
Dim boxmentionSentence As String
boxmentionSentence = "Welcome to Template V2.0 !" & vbNewLine &
vbNewLine & "Are you ready to enjoy it ?" _
& vbNewLine & "(If NO, close workbook and quit Excel)"
checkterm = MsgBox(boxmentionSentence, vbYesNo + vbInformation, boxTitle)
If checkterm = vbYes Then
End If
If checkterm = vbNo Then
Application.DisplayAlerts = False
ThisWorkbook.Saved = True
Application.Quit
End If
End Sub
2.接著為了達到「停用巨集則關閉活頁簿」,google找了如下的方法
i. 新增 Excel 4.0 巨集表 Macro1,輸入以下
停用巨集則關閉活頁簿
=ERROR(FALSE) ←這個Cell為Macro1!$A$2
=IF(ERROR.TYPE(RUN("TestMacro"))=4)
= ALERT("因停用了巨集功能,檔案將被關閉!",3)
= FILE.CLOSE(FALSE)
=END.IF()
=RETURN
ii.在工作表「插入」→「名稱」→「定義」Auto_Activate,指向 Macro1!$A$2
開啟檔案後,選擇「停用巨集」,確實彈出Msgbox並且能夠關閉活頁簿。
-----------------------------------------------------------------------
重新開啟檔案,啟用巨集,在測試1.的時候,選擇「否」,但是Excel沒有退出,
VBA也沒有彈出錯誤訊息,所以我想是 Application.DisplayAlerts = False 有作用?!
檢查發現 Saved 是 False,
所以我想是以下兩行沒有執行作用,
ThisWorkbook.Saved = True
Application.Quit
而後我試著刪掉 Macro1 ,1.選否就又會退出 Excel了,
想請問該如何改才能讓1.與2.順利執行?
謝謝各位的幫忙!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.46.80
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1441845764.A.035.html
※ Lagrange:轉錄至看板 Visual_Basic 09/10 08:58
→ soyoso: 那將application.quit改為workbooks.close試試 09/10 10:57
→ Lagrange: 關閉活頁簿可以,但是我要退出Excel 09/10 11:46
→ soyoso: 那在application.quit前加上workbooks.close試試 09/10 11:52
→ soyoso: 好像也是一樣的^^抱歉上面回文忽略 09/10 11:53
→ soyoso: 測試如果是在application.quit後加上workbooks.close則是 09/10 11:56
→ soyoso: 可行 09/10 11:56
→ Lagrange: 可以耶~但是為什麼呢?想不通~ 09/10 12:23