离开文本框时出现VBA Excel错误
我想用一个半透明的文本来显示日期的输入格式。添加代码后,我发现如果我单击我的txtA_DateCR文本框,然后单击另一个文本框或命令按钮,错误将继续提示离开文本框时出现VBA Excel错误,vba,excel,error-handling,Vba,Excel,Error Handling,我想用一个半透明的文本来显示日期的输入格式。添加代码后,我发现如果我单击我的txtA_DateCR文本框,然后单击另一个文本框或命令按钮,错误将继续提示 'This was the code that works fine before adding the following 2 below. Private Sub txtA_DateCR_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If Mid(txtA_DateCR.Va
'This was the code that works fine before adding the following 2 below.
Private Sub txtA_DateCR_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(txtA_DateCR.Value, 4, 2) > 12 Then
MsgBox "Invalid date, make sure format is (dd/mm/yyyy)", vbCritical
txtA_DateCR.Value = vbNullString
txtA_DateCR.SetFocus
Exit Sub
End If
dDate = DateSerial(Year(Date), Month(Date), Day(Date))
txtA_DateCR.Value = Format(txtA_DateCR.Value, "dd/mm/yyyy")
dDate = txtA_DateCR.Value
End Sub
'Supposed to change the textbox values to light grey and have the value of dd/mm/yyyy
Private Sub txtA_DateCR_AfterUpdate()
With txtA_DateCR
If .Text = "" Then
.ForeColor = &HC0C0C0
.Text = "dd/mm/yyyy"
End If
End With
End Sub
'When user clicks here, the value of dd/mm/yyyy will disappear and font colour will return back to black
Private Sub txtA_DateCR_Enter()
With txtA_DateCR
If .Text = "dd/mm/yyyy" Then
.ForeColor = &H80000008
.Text = ""
End If
End With
End Sub
Private Sub UserForm_Initialize()
txtA_DateCR.ForeColor = &HC0C0C0
txtA_DateCR.Text = "dd/mm/yyyy"
cmdEnter.SetFocus
End Sub
作为总结,我只希望在用户输入错误的日期格式时弹出错误消息,当我从文本框中单击时不会弹出错误消息。然后尝试对Enter按钮的单击事件进行验证。您是否尝试添加
如果txtA_DateCR.Value=“”,然后在如果Mid(txtA_DateCR.Value,4,2)之前退出Sub
>12然后…
?迪斯的方法奏效了!谢谢你们两个!但似乎无法为您选择正确的答案@deeI很高兴这有帮助:-)@Edward除非有人提供答案,否则你无法标记答案。目前,他们已经能够通过简单的评论建议来解决这个问题:)