2017-01-24 86 views
2

我有三個文件,一個是app.xlsm,另一種是lib.xlsm,而app.xlsm使用lib.xlsm作爲參考(其在工具指定 - >參考)。第三,third.xlsm具有下面的代碼:強制退出時外部XLSM庫引用和開放

Private Sub Workbook_Open() 
    prompt = MsgBox("If you click Ok, Excel will force close." & vbCrLf & _ 
      "If you click Cancel, you can work with the file", vbOKCancel) 
    If prompt = vbOK Then 
     Application.DisplayAlerts = False 
     thisworkbook.Close True 
     Application.Quit 
    End If 
End Sub 

假設我有applib開放。現在,當我打開third,然後在提示時單擊確定,app被關閉,但lib保持打開狀態。即Excel不會強行關閉。

我需要Excel來關閉所有文件而不保存它們並靜靜地關閉。

非常感謝。

回答

1

,如果你遍歷這個實例中打開的工作簿,即

Private Sub Workbook_Open() 
    Dim wb As Workbook 
    prompt = MsgBox("If you click Ok, Excel will force close." & vbCrLf & _ 
      "If you click Cancel, you can work with the file", vbOKCancel) 

    If prompt = vbOK Then 
     For Each wb In Application.Workbooks 
     If wb.Name <> ThisWorkbook.Name Then wb.Close False 
     Next 
    End If 
    ThisWorkbook.Saved = True 
    Application.Quit 
End Sub 

熱核選項關閉所有的Excel實例

Private Sub Workbook_Open() 
     Dim wb As Workbook 
     prompt = MsgBox("If you click Ok, Excel will force close." & vbCrLf & _ 
       "If you click Cancel, you can work with the file", vbOKCancel) 

     If prompt = vbOK Then 
      For Each wb In Application.Workbooks 
      If wb.Name <> ThisWorkbook.Name Then wb.Close False 
      Next 
     End If 
     X2 = Shell("powershell.exe kill -processname excel", 1) 
End Sub 
+1

夢幻般的,會發生什麼,非常感謝! – hardish