1

在这里想请教专家,为什么下面的代码在excel表格中不起作用?基本上,此代码将对用户输入 BDTextBox 的输入执行验证,如果格式无效,它将弹出警告消息。我已经在 excel 表单中测试了这段代码,它运行良好,但是如果将文本框从表单更改为嵌入到 excel 表单中,它不起作用.. 有什么想法吗?

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
4

1 回答 1

0

因为与用户表单文本框一样,Excel 工作表中没有_Exit嵌入 ActiveX 文本框的事件。的等价事件_Exit_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
于 2013-11-04T16:27:55.630 回答