“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,它利用了剪贴板。下面是一个链接,其中包含如何避免使用剪贴板的提示:[.希望这会有帮助。