从工作表中检查已终止的表单

时间:2013-11-07 14:47:05

标签: vba excel-vba excel

我从Googling那里得到了代码并试图让它适应我的电子表格。作为新手VBA用户,我猜测它与缺乏知识有关。

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim UForm As Object

    For Each UForm In UserForms
        If UForm.Name = UserForms.Form1 Then
                With UserForms.Form1
                    .Unload
                End With
        End If
    Next

End Sub

当Form1终止时,它会将excel文件中所做的所有更改备份到txt文件。但是,如果我们在没有首先终止表单的情况下关闭excel文件,则它不会备份。我的想法是,如果我们检查表单是否先打开,我们可以在关闭前卸载它。但是,如果表单已关闭,我们尝试卸载它,则会发生错误。

当运行代码时,错误1004发生。

我期待任何建议! 谢谢, 亚历

1 个答案:

答案 0 :(得分:2)

试试

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim UForm As Object
    For Each UForm In UserForms
        Unload UForm
    Next
End Sub

click here了解有关UserForms集合

的更多信息