【问题标题】:Userform in VBA macro is closing the entire excel fileVBA宏中的用户窗体正在关闭整个excel文件
【发布时间】:2015-05-03 12:34:11
【问题描述】:

我创建了一个具有多个功能的用户窗体。

当我打开 Excel 文件时,表单会打开,但是如果我尝试关闭表单,则 Excel 文件会一起关闭。另外,我无法打开这个 Excel 的 VBA(包含表单),所以我要做的(这真的很愚蠢)是打开另一个 Excel,按 Alt+F11 打开宏环境,然后我可以使用用户窗体打开我的 Excel 文件。

我认为我的问题在于这个特定的代码:

Private Sub UserForm_Terminate()
    'Application.Visible = True
    ActiveWorkbook.Saved = True
    Application.Quit
End Sub

谁能猜出这里的问题是什么?

【问题讨论】:

  • 您希望它做什么而不是关闭 Excel? Application.Quit 方法是关闭用户窗体时关闭 Excel 的方法。删除或注释掉该行,然后重试。当用户窗体关闭时,您有什么特别想要做的吗?
  • 可能你需要使用unload userform 命令而不是Application.Quit 来关闭excel。

标签: vba excel userform


【解决方案1】:

如果您只想关闭用户窗体,请使用 Unload Me 而不是 Application.Quit

【讨论】:

    【解决方案2】:

    您需要将您的用户窗体显示为无模式

    UserForm.Show False
    

    这样您就可以在 UF 后面导航,甚至可以直接打开 VBA。

    很明显,如果你在退出 UF 时只是关闭主机应用程序,那么做其他任何事情都会更加困难!

    所以也许这将是一个更好的解决方案:

    Private Sub UserForm_Terminate()
        ActiveWorkbook.Saved = True
        'ThisWorkbook.Save
    
    
        If MsgBox("Do you want to close Excel?", vbOKCancel + vbQuestion, "Exit Excel?") <> vbOK Then
            'Do nothing
        Else
            Application.Quit
        End If
    End Sub
    

    我不知道您的ActiveWorkbook.Saved = True 行是做什么用的,是要保存还是只是在没有消息的情况下退出,因为您没有用它保存文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      相关资源
      最近更新 更多