Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
“Application.DisplayAlerts=False”使Excel崩溃_Excel_Vba - Fatal编程技术网

“Application.DisplayAlerts=False”使Excel崩溃

“Application.DisplayAlerts=False”使Excel崩溃,excel,vba,Excel,Vba,我有一个代码,可以打开四本工作簿,重新格式化数据,将其粘贴到当前工作簿中,然后关闭其他工作簿 当我关闭其他工作簿时,会收到一个显示警报,询问我是否要保存工作簿。我想停止显示警报 微软的建议是: Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True 当我这样做时,Excel崩溃了 代码: 我不会尝试关闭活动工作簿,但会设置工作簿并将其关闭: Sub closeWorkbook

我有一个代码,可以打开四本工作簿,重新格式化数据,将其粘贴到当前工作簿中,然后关闭其他工作簿

当我关闭其他工作簿时,会收到一个显示警报,询问我是否要保存工作簿。我想停止显示警报

微软的建议是:

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
当我这样做时,Excel崩溃了

代码:


我不会尝试关闭活动工作簿,但会设置工作簿并将其关闭:

Sub closeWorkbook()
Dim workbookToClose As Workbook

Application.DisplayAlerts = False
Set workbookToClose = Workbooks("WorkbookToClose.xls")
workbookClose.Close
Application.DisplayAlerts = True

End Sub

我不会尝试关闭活动工作簿,但会设置工作簿并将其关闭:

Sub closeWorkbook()
Dim workbookToClose As Workbook

Application.DisplayAlerts = False
Set workbookToClose = Workbooks("WorkbookToClose.xls")
workbookClose.Close
Application.DisplayAlerts = True

End Sub

您是否可以保留DisplayAlerts,但对于要关闭的工作簿,请设置保存标志

例如,在关闭某个工作簿之前:

Someworkbook.Saved = true 
这将停止要求您保存的消息框


希望对您有所帮助。

您是否可以保留DisplayAlerts,但对于要关闭的工作簿,请设置saved标志

例如,在关闭某个工作簿之前:

Someworkbook.Saved = true 
这将停止要求您保存的消息框


希望对您有所帮助。

如果您不想保存数据,请尝试使用Active工作簿。关闭False。这将在不保存任何提示和不使用DisplayAlerts行的情况下关闭工作簿。您还可以将活动工作簿设置为所需的任何工作簿名称。

如果不想保存数据,请尝试使用活动工作簿。关闭False。这将在不保存任何提示和不使用DisplayAlerts行的情况下关闭工作簿。您还可以将活动工作簿设置为所需的任何工作簿名称。

这发生在我身上,我意识到这是因为我打开了VBA编辑器。当我关闭VBA编辑器,然后运行宏时,Excel没有崩溃。

这发生在我身上,我意识到这是因为我打开了VBA编辑器。当我关闭VBA编辑器,然后运行宏时,Excel没有崩溃。

根据我的经验,调用Workbook.Open等方法会使VBA不稳定。而不是在一个S.@ XIDGEL中调用这些方法,你确定吗?除非您试图从工作表中以UDF的形式调用该函数,否则它应该完成Sub所做的一切,等等。我遗漏了什么吗?@vacip你说得对,谢谢你抓住了我的错误。打开多个工作簿意味着你需要对代码格外小心。最好打开一个工作簿,复制它,然后关闭它,然后粘贴并格式化。然后转到下一个工作簿。但无论如何,我有一个类似的设置给你,实际上是一个现场直播。一个包含数千个单元格的excel文件,使用公式从其他文件中提取数据,在提要上只显示相关信息,所有信息都已格式化且整洁。我使用的代码只确保更新在x分钟内完成,根据我的经验,排序和条件格式自动处理格式设置,调用工作簿等方法。函数内部打开会使VBA不稳定。而不是在一个S.@ XIDGEL中调用这些方法,你确定吗?除非您试图从工作表中以UDF的形式调用该函数,否则它应该完成Sub所做的一切,等等。我遗漏了什么吗?@vacip你说得对,谢谢你抓住了我的错误。打开多个工作簿意味着你需要对代码格外小心。最好打开一个工作簿,复制它,然后关闭它,然后粘贴并格式化。然后转到下一个工作簿。但无论如何,我有一个类似的设置给你,实际上是一个现场直播。一个包含数千个单元格的excel文件,使用公式从其他文件中提取数据,在提要上只显示相关信息,所有信息都已格式化且整洁。我使用的代码只确保更新在x分钟内完成,排序和条件格式自动处理格式。我对这个解决方案很满意,但它问我你有大量数据复制到剪贴板。。。。这是因为你在代码中使用了PasteSpecial,它利用了剪贴板。以下是有关如何避免使用剪贴板的提示链接:[.希望这会有帮助。我对这个解决方案感觉很积极,但后来它问我你有大量数据复制到剪贴板…啊,这是因为你在代码中使用了PasteSpecial,它利用了剪贴板。下面是一个链接,其中包含如何避免使用剪贴板的提示:[.希望这会有帮助。