我从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发生。
我期待任何建议! 谢谢, 亚历
答案 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
集合