【问题标题】:Closing Excel Application using VBA使用 VBA 关闭 Excel 应用程序
【发布时间】:2011-04-07 09:28:13
【问题描述】:

我使用了以下但没有成功。活动工作簿确实关闭了,但 Excel 窗口仍然打开。

Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False

终止应用程序的命令是什么?

编辑

多说一点:在工作簿打开事件中,我运行一个宏。我想在该宏完成时终止应用程序。我也试过这个没有成功。

Private Sub Workbook_Open()
   Macro_MyJob
   Application.Quit
End Sub

我应该把这个 Application.Quit 命令放在哪里?

【问题讨论】:

    标签: excel vba excel-2007


    【解决方案1】:

    我认为你的问题是它在发送命令退出应用程序之前关闭调用宏的文档。

    在这种情况下,您的解决方案是不发送关闭工作簿的命令。相反,您可以将工作簿的“已保存”状态设置为 true,这将绕过任何有关关闭未保存书籍的消息。注意:这不会保存工作簿;它只是让它看起来像是被保存了。

    ThisWorkbook.Saved = True
    

    然后,紧接着

    Application.Quit
    

    【讨论】:

      【解决方案2】:

      要避免保存提示消息,您必须插入这些行

      Application.DisplayAlerts = False
      ThisWorkbook.Save
      Application.DisplayAlerts = True
      

      保存工作后,您需要使用此行退出 Excel 应用程序

      Application.Quit
      

      除非您进行了正确的条件检查,否则不要简单地将这些行放入 Private Sub Workbook_Open() 中,否则您可能会破坏您的 excel 文件。

      为了安全起见,请创建一个模块来运行它。以下是我放的代码:

      Sub testSave()
      Application.DisplayAlerts = False
      ThisWorkbook.Save
      Application.DisplayAlerts = True
      Application.Quit
      End Sub
      

      希望它能帮助你解决问题。

      【讨论】:

        【解决方案3】:
        Sub TestSave()
        Application.Quit
        ThisWorkBook.Close SaveChanges = False
        End Sub
        

        这似乎对我有用,即使看起来像是在保存之前退出应用程序,但它保存了......

        【讨论】:

        • 这对我也有用。但是,您在等号之前缺少一个冒号,如下所示:SaveChanges:=False
        • 你确定它可以保存吗?因为 savechanges := false
        【解决方案4】:
        Application.Quit 
        

        应该做的伎俩。

        【讨论】:

          【解决方案5】:

          我尝试了一个似乎有效的序列,如下所示:

          ThisWorkbook.Saved = True
          Application.Quit
          Application.ActiveWindow.Close SaveChanges:=False
          ActiveWorkbook.Close SaveChanges:=False
          

          【讨论】:

            【解决方案6】:

            你可以试试

            ThisWorkbook.Save
            ThisWorkbook.Saved = True
            Application.Quit
            

            【讨论】:

              【解决方案7】:

              在我的例子中,我只需要关闭一个 Excel 窗口,而不是整个应用程序,因此,我需要知道要关闭哪个窗口,而不保存它。

              以下几行可以正常工作:

              Sub test_t()
                Windows("yourfilename.xlsx").Activate
                ActiveWorkbook.Close SaveChanges:=False
              End Sub
              

              【讨论】:

                【解决方案8】:
                Sub button2_click()
                '
                ' Button2_Click Macro
                '
                ' Keyboard Shortcut: Ctrl+Shift+Q
                '
                    ActiveSheet.Shapes("Button 2").Select
                    Selection.Characters.Text = "Logout"
                    ActiveSheet.Shapes("Button 2").Select
                    Selection.OnAction = "Button2_Click"
                    ActiveWorkbook.Saved = True
                    ActiveWorkbook.Save
                    Application.Quit
                End Sub
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-03-24
                  • 2016-11-25
                  • 1970-01-01
                  • 2016-08-20
                  • 2017-03-25
                  • 1970-01-01
                  相关资源
                  最近更新 更多