1

我从谷歌上得到了代码,并试图调整它以在我的电子表格上运行。作为一个新手 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。

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

4

1 回答 1

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系列的更多信息

于 2013-11-07T16:50:06.490 回答