Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 引用并打开外部xlsm库时强制退出_Vba_Excel - Fatal编程技术网

Vba 引用并打开外部xlsm库时强制退出

Vba 引用并打开外部xlsm库时强制退出,vba,excel,Vba,Excel,我有三个文件,一个是app.xlsm,另一个是lib.xlsm,而app.xlsm使用lib.xlsm作为参考(在工具->参考中指定)。第三个,third.xlsm具有以下代码: Private Sub Workbook_Open() prompt = MsgBox("If you click Ok, Excel will force close." & vbCrLf & _ "If you click Cancel, you can work w

我有三个文件,一个是
app.xlsm
,另一个是
lib.xlsm
,而
app.xlsm
使用
lib.xlsm
作为参考(在工具->参考中指定)。第三个,
third.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
假设我打开了
app
lib
。现在,当我打开
third
,然后在提示下单击OK时,
app
关闭,但
lib
保持打开状态。即Excel不会强制关闭

我需要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
    ThisWorkbook.Saved = True
    Application.Quit
End Sub
Private子工作簿\u Open()
将wb设置为工作簿
prompt=MsgBox(“如果单击“确定”,Excel将强制关闭。”&vbCrLf&_
“如果单击“取消”,则可以使用该文件”,vbOKCancel)
如果prompt=vbOK,则
对于应用程序中的每个wb。工作簿
如果wb.Name ThisWorkbook.Name,则wb.Close为False
下一个
如果结束
ThisWorkbook.Saved=True
申请,退出
端接头
用于关闭所有Excel实例的热核选项

Private子工作簿\u Open()
将wb设置为工作簿
prompt=MsgBox(“如果单击“确定”,Excel将强制关闭。”&vbCrLf&_
“如果单击“取消”,则可以使用该文件”,vbOKCancel)
如果prompt=vbOK,则
对于应用程序中的每个wb。工作簿
如果wb.Name ThisWorkbook.Name,则wb.Close为False
下一个
如果结束
X2=Shell(“powershell.exe kill-processname 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
        X2 = Shell("powershell.exe kill -processname excel", 1)
End Sub