2016-07-27 26 views
-1

我一直在尋找一種使用vba退出excel並殺死它的processus的解決方案,但我仍然找不到任何解決方案,這裏討論的方法是關於隱藏保存提示,但是如何在不保存的情況下退出一個excel應用程序(不僅是實例),當然也不會停止它的執行? 謝謝退出excel會話從Access VBA不保存

+0

爲什麼這個標籤的「訪問」,如果你在談論的Excel? –

+0

即時通訊實際上使用所有這些訪問,我打開Excel應用程序使用VBA和獲取一些數據到我的表 –

+2

哦,你不認爲這是相關的提及?根據你的問題,我認爲你是在Excel內部完成的,因爲你沒有另外說明。 –

回答

0

此代碼將隱藏的提示和關閉而不保存

Sub CloseActiveBook() 
Application.DisplayAlerts = False 
ActiveWorkbook.Close 
Application.DisplayAlerts = True 
End Sub 

或者迫使它

Sub Auto_Close() 
ThisWorkbook.Saved = True 
End Sub 

此示例關閉Book1.xls的,並放棄已做任何更改。

Sub saveWNoChanges() 
Workbooks("BOOK1.XLS").Close SaveChanges:=False 
End Sub 
+0

** ThisWorkbook.Saved = True **保存文件? –

+0

@TarikKaoukab不,它會將文件標記爲「已保存」,即使它不會提示您保存 – RGA

+0

@TarikKaoukab 因爲Saved屬性設置爲True,所以Excel響應,就像工作簿已保存一樣自上次保存以來沒有發生任何變化。 [檢查此頁](https://support.microsoft.com/en-us/kb/213428) – krib

0

兩種方法可以做到這一點。首先,將顯示警報設置爲false。其次,將保存狀態設置爲true。二者是等效的,雖然第二將需要一個循環,如果多個工作簿是開放的,所以第一個建議(幷包含下面)

Application.DisplayAlerts = False 
Application.Quit 
+0

或現在,當我再次讀取Q,lol – krib

+0

@RGA我確實嘗試過,但processus總是在那裏...並且我正在使用多個工作簿 –

+0

@TarikKaoukab什麼是你的意思是「流程總是存在」? – RGA

0

什麼Mr.krib說結合,ThisWorkbook.Saved = true如果您更改工作的ThisWorkbookname_of_your_instance_Excel.ActiveWorkbook 例如:

Set myxl = CreateObject("Excel.Application") 
myxl.ActiveWorkbook.saved= True 

PS:這也適用於多個工作簿!

謝謝@Krib

+0

很高興爲您提供幫助。你可以通過接受答案來表示你的讚賞;) – krib