【问题标题】:Excel VBA close current workbook Error 1004Excel VBA 关闭当前工作簿错误 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

【问题讨论】:

    标签: excel vba


    【解决方案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)" 结束子
    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    相关资源
    最近更新 更多