当此人输入特定值时,如何使 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
我在 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