Excel VBA文本框事件
想问问这里的专家,为什么下面的代码在excel工作表中不起作用?基本上,此代码将对用户输入到BDTextBox的输入执行验证,如果格式无效,它将弹出一条警告消息。我已经在excel工作表表单中测试了这段代码,它工作得很好,但是如果将文本框从表单更改为嵌入excel工作表,它就不工作了。。有什么想法吗Excel VBA文本框事件,vba,excel,Vba,Excel,想问问这里的专家,为什么下面的代码在excel工作表中不起作用?基本上,此代码将对用户输入到BDTextBox的输入执行验证,如果格式无效,它将弹出一条警告消息。我已经在excel工作表表单中测试了这段代码,它工作得很好,但是如果将文本框从表单更改为嵌入excel工作表,它就不工作了。。有什么想法吗 Private Sub BDTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean) If BDTextBox.Text <> "" The
Private Sub BDTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If BDTextBox.Text <> "" Then
If IsDate(BDTextBox.Text) Then
BDTextBox.Text = Format(BDTextBox.Text, "yyyymmdd")
FinalBusinessDate = BDTextBox.Text
Else
MsgBox "Please enter a valid date!" & vbNewLine & "Date format could be one of the following" & vbNewLine & "YYYY MM DD" & vbNewLine & "MM DD YYYY" & vbNewLine & "DD MM YYYY", vbCritical
BDTextBox.Text = ""
Cancel = True
End If
End If
End Sub
Private子BDTextBox_退出(ByVal取消为MSForms.ReturnBoolean)
如果是BDTextBox.Text“”,则
如果是IsDate(BDTextBox.Text),则
BDTextBox.Text=格式(BDTextBox.Text,“yyyyymmdd”)
FinalBusinessDate=BDTextBox.Text
其他的
MsgBox“请输入有效日期!”&vbNewLine&“日期格式可以是以下格式之一”&vbNewLine&“YYYY-MM-DD”&vbNewLine&“MM-DD-yyy”&vbNewLine&“DD-MM-YYYY”,vbNewLine
BDTextBox.Text=“”
取消=真
如果结束
如果结束
端接头
因为与Userform Textbox一样,Excel工作表中嵌入的ActiveX Textbox没有退出事件。\u Exit
的等效事件是\u LostFocus
试试这个
Private Sub BDTextBox_LostFocus()
If BDTextBox.Text <> "" Then
If IsDate(BDTextBox.Text) Then
BDTextBox.Text = Format(BDTextBox.Text, "yyyymmdd")
FinalBusinessDate = BDTextBox.Text
Else
MsgBox "Please enter a valid date!" & vbNewLine & _
"Date format could be one of the following" & _
vbNewLine & "YYYY MM DD" & vbNewLine & _
"MM DD YYYY" & vbNewLine & "DD MM YYYY", vbCritical
BDTextBox.Text = ""
Cancel = True
End If
End If
End Sub
Private子BDTextBox\u LostFocus()
如果是BDTextBox.Text“”,则
如果是IsDate(BDTextBox.Text),则
BDTextBox.Text=格式(BDTextBox.Text,“yyyyymmdd”)
FinalBusinessDate=BDTextBox.Text
其他的
MsgBox“请输入有效日期!”&vbNewLine&_
“日期格式可以是以下格式之一”&_
vbNewLine和“YYYY-MM-DD”&vbNewLine和_
“MM DD YYYY”&vbNewLine和“DD MM YYYY”,vbNewLine
BDTextBox.Text=“”
取消=真
如果结束
如果结束
端接头
代码在哪里?换句话说,您是否确保它仍然“连接到文本框”?