在初始化时关闭表单会引发错误

vrc*_*llv 4 excel vba

我正在尝试制定更新特定工作表的标准化流程。除了我给他们的功能之外,我不想要用户控制。为此,我锁定了工作表,然后使用某些宏加载了表单。一种表单旨在从工作表中删除数据。它在编写和测试时运行良好,但我尝试更新它,以便如果您打开它而没有任何相关数据要删除,它会弹出一个对话框,然后使用卸载我来关闭表单。这会关闭表单,但 excel 会引发错误:

运行时错误“91”:未设置对象变量或块变量

该表单是从只有一行的模块加载的:

MyForm.Show
Run Code Online (Sandbox Code Playgroud)

这就是 excel 抛出错误的地方。在表单初始化时,组合框会根据工作表中的数据填充值。如果加载后组合框为空,则表单应该抛出对话框然后关闭。

If ComboBox.ListCount = 0 Then
    MsgBox "No Data"
    Unload Me
End If
Run Code Online (Sandbox Code Playgroud)

如何在不从模块中抛出错误的情况下执行负载检查?

L42*_*L42 5

这实际上并没有回答你的问题。但我的建议是在实际加载表单之前检查模块代码。就像是:

Sub LoadForm()
    If Sheets("Sheet1").Range("A1") = "" Then '<~~ your condition here
        MsgBox "No Data"
    Else
        MyForm.Show
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)