当此人输入特定值时,如何使 msgbox 出现在用户窗体上

How can I make a msgbox appear on a Userform when the person enters a specific value

我在 Excel 中创建了一个用户表单,它将填充一个数据库。但是,在我的用户表单中有一个组合框,用户可以在其中从三个列表中选择一个特定的费率。选择一个特定速率时,我需要立即显示错误消息。当用户选择 'Submit' 表单时,我还有其他错误消息会显示,但我需要在选择值后立即填充此错误消息。我已经纠正了我的其他编码问题,所以这应该与此无关。

我目前的代码在这里:

Private Sub cmbMileageRates_Change()

    If cmbMileageRates.Value = ".58" Then
        MsgBox "When requesting mileage reimbursement of the high rate($.58/mile), Division Administrator Approval is required", 0, "Critical"
        Exit Sub
    End If

End Sub

您需要在表单为 'dirty' 时触发您的代码。

Dirty 事件在指定控件的内容更改时发生。

Microsoft 网站上有一个很好的例子: https://docs.microsoft.com/en-us/office/vba/api/access.combobox.dirty

    Private Sub Form_Dirty() 
     If Me.Dirty Then 
        If cmbMileageReimbRates.value = ".58" Then
            MsgBox "When requesting mileage reimbursment of the high rate ($.58/mile), Division Administrator Approval is required", vbCritical

            'if you want to clear the value too, use:
            cmbMileageReimbRates.Value = Null
            Exit Sub
        End If
     Else 
        'Carry on
     End If 
    End Sub

为什么不使用事件 "cmbMileageReimbRates_change"?

Private Sub cmbMileageReimbRates_Change()
If cmbMileageReimbRates.Value = ".58" Then
    MsgBox "When requesting mileage reimbursment of the high rate ($.58/mile), Division 
     Administrator Approval is required", vbCritical
    Exit Sub
End If
End Sub