Vba Unload语句不卸载UserForm

Vba Unload语句不卸载UserForm,vba,excel,if-statement,Vba,Excel,If Statement,我相信这有一个简单的答案,但它让我感到困惑。下面的代码是我在VBA中制作的用户表单的一部分。表单要求用户在一个字段中输入一个项目的名称,在另一个字段中输入该项目的数量。此代码是用户在输入该信息后单击“确定”时运行的代码的一部分。下面显示的If-Else语句检查项目(ItemName)是否显示在名为Inventory的工作表上。如果没有出现,那么用户应该看到一条错误消息,代码应该停止运行。但是,我的代码并没有停止运行。它似乎忽略了“Unload Me”行,并继续在If-Else语句之后查看代码。我

我相信这有一个简单的答案,但它让我感到困惑。下面的代码是我在VBA中制作的用户表单的一部分。表单要求用户在一个字段中输入一个项目的名称,在另一个字段中输入该项目的数量。此代码是用户在输入该信息后单击“确定”时运行的代码的一部分。下面显示的If-Else语句检查项目(ItemName)是否显示在名为Inventory的工作表上。如果没有出现,那么用户应该看到一条错误消息,代码应该停止运行。但是,我的代码并没有停止运行。它似乎忽略了“Unload Me”行,并继续在If-Else语句之后查看代码。我做错了什么

Private Sub cmdOkay_Click()

        Dim Quantity As Double
        Dim ItemName as String
        Dim FoundRange As Range

        ItemName = Item_Name_Field
        Quantity = Quantity_Field

        Sheets("Inventory").Select
        Range("A1").Select

        Set FoundRange = Cells.Find(What:=ItemName, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

        If FoundRange Is Nothing Then

        Dim AlertBox As Double
        AlertBox = MsgBox(ItemName & " was not found in Inventory. Check your spelling and try again.", vbExclamation, "Item Not Found")
        Unload Me

        Else

      '....
      '(more code)

       End If
      '(more code)
End Sub

退出子系统应可获得所需的结果:

    Dim AlertBox As Double
    AlertBox = MsgBox(ItemName & " was not found in Inventory. Check your spelling and try again.", vbExclamation, "Item Not Found")
    Unload Me
    Exit Sub

@这在上下文中没有任何意义。。。如果您不熟悉VBA,为什么要提出建议?您尝试过调试什么?如果FoundRange为Nothing,则在
行上放置断点,并检查VBE的本地窗口中的
FoundRange.Address
属性(或执行
Debug.Print FoundRange.Address
)。唯一有意义的是,这个项目名可以在工作表中找到。@svenoaks我不是建议你不要尝试帮助,只是如果你真的不熟悉某个主题,你的帮助不会有帮助。这就是为什么我不回答python或c#等问题的原因。注意:OP解释说这不是“函数”的一部分,它是用户表单上按钮的事件处理程序的一部分。加上我的2美分-代码对我来说很好,用户表单卸载没有问题(我用按钮调用表单by.show)。你是如何调用用户表单的?另外,您使用的是excel 2003或更低版本吗?好的,当我逐行检查代码时,下面是到达“卸载我”行时发生的情况。当该行执行时,userform关闭。所以,这不仅仅是被忽视。但是,代码继续运行。因此,在If/Else语句之后,它会再次出现。我不想在“卸载我”之后运行任何代码。也许有不同的命令。。。?结束,退出,停止,还是什么?谢谢你,伙计;成功了!我知道答案很简单。也许我只是问得不够清楚。再次感谢。