Excel VBA 关闭当前工作簿错误 1004
Posted
技术标签:
【中文标题】Excel VBA 关闭当前工作簿错误 1004【英文标题】:Excel VBA close current workbook Error 1004 【发布时间】:2012-02-10 19:10:03 【问题描述】:我在 Excel 工作簿中有一些 VBA 代码。 我有一个单元格,我想用它来关闭工作簿而不保存(而不是使用 excel 右上角的常用 (X) 关闭按钮。
如果我使用 (X) 按钮关闭工作簿,则以下代码效果很好。 但是,如果我按下工作表上的“关闭”按钮单元格,则会出现 1004 错误。
谁能帮忙?
在按钮所在的工作表上
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(ActiveCell.Row, ActiveCell.Column) = "CLOSE" Then
CloseNoSave
End If
End Sub
在本手册中
Private Sub Workbook_BeforeClose(Cancel As Boolean)
CloseNoSave
End Sub
在模块中
Sub CloseNoSave()
ThisWorkbook.Close savechanges:=False
End Sub
【问题讨论】:
【参考方案1】:为什么不在Selection
事件中使用一段代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Value = "CLOSE" Then
ThisWorkbook.Saved = True
ThisWorkbook.Close
End If
End Sub
【讨论】:
感谢 brettdj !做到了!我还添加了 ThisWorkbook.Saved = True 到 Workbook_BeforeClose 并且我现在可以关闭工作簿而无需保存按 X 或工作表上的“关闭”按钮! 好吧,看来我还是有同样的问题。为了使 excel 2007 尽可能“整洁”,我在 windowActivate/windowDeactivate 中添加了以下代码。如果功能区被隐藏,然后按 X 或 CLOSE 按钮,则会导致错误 1004 再次发生。任何想法如何解决? Private Sub Workbook_WindowActivate(ByVal Wn As Window) Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", false)" End Sub Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"" , true)" 结束子以上是关于Excel VBA 关闭当前工作簿错误 1004的主要内容,如果未能解决你的问题,请参考以下文章