excel没有正确关闭 - userform挂起?

时间:2015-09-10 22:36:47

标签: excel vba excel-vba userform

我有一个包含6个用户表单的电子表格,用于约30台计算机。 VBA代码受密码保护。通常,当我们关闭工作表时,会出现VBA项目密码框,并且excel.exe仍保留在任务管理器中。

我做了一些测试并提出以下建议:

  1. 仅在打开用户窗体时才会出现此问题。
  2. 除了按“取消”(调用“卸载我”)之外,不需要使用userform来导致弹出窗口
  3. Workbook_BeforeClose事件如下:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    Application.ScreenUpdating = False
    
    'Cancel autosave
    Sheets("BOH General").Range("A102").Value = 0
    AutoSaveTimer
    
    'Application.EnableEvents = False
    
    If Not Sheets("START").Visible = True Then Call CostingMode
    Call BackItUp
    
    'Application.EnableEvents = True
    Application.ScreenUpdating = True
    
    End Sub
    

    以下是Workbook_BeforeClose调用的其他一些宏:

    Sub AutoSaveTimer()
    
    If Sheets("BOH General").Range("A102").Value > 0 Then
        RunWhen = Now + TimeSerial(0, Sheets("BOH General").Range("A102").Value, 0)
        Application.OnTime EarliestTime:=RunWhen, Procedure:="AutoSaveIt", _
            Schedule:=True
    Else
        On Error Resume Next
        Application.OnTime EarliestTime:=RunWhen, Procedure:="AutoSaveIt", _
            Schedule:=False
        On Error GoTo 0
    End If
    
    End Sub
    
    Sub AutoSaveIt()
    ThisWorkbook.Save
    Call AutoSaveTimer
    End Sub
    
    Sub BackItUp()
    
    'Dont run if unsaved
    If Sheets("BOH General").Range("A111").Value = "" Then Exit Sub
    
    'Prompt
    If MsgBox("Do you want to backup this sheet now (recommended if you made any changes)?", vbYesNo) = vbNo Then Exit Sub
    
    'reformat date
    Dim DateStamp As String
    DateStamp = Format(Now(), "yyyy-mm-dd hh-mm-ss")
    
    On Error Resume Next
    MkDir ActiveWorkbook.Path & "\" & "Backup"
    On Error GoTo 0
    
    ActiveWorkbook.SaveCopyAs (ActiveWorkbook.Path & "\" & "Backup" & "\" & ActiveWorkbook.Name & " - backup " & DateStamp & ".xlsb")
    
    ActiveWorkbook.Save
    
    End Sub
    

    这是用户表单错误,用户表单是否未正确关闭?还是别的什么?

    更新:此错误仅在用户单击Excel关闭按钮(右上角)后单击文件>关闭不会产生错误。

1 个答案:

答案 0 :(得分:2)

有趣的是,我一直在体验相同的实例,它最近才出现。 MOS版本是否改变了这种行为?我有Excel 12.0.6611.1000和12.0.6712.5000的用户没有收到此错误,在12.0.6729.5000上它总是会发生。

编辑; 我发现有几个用户安装了“Drop Box”后,我今天就解决了这个问题。在关闭应用程序之前卸载或关闭下拉框解决了问题。