Excel VBA,如何仅使TextBox格式日期

时间:2017-04-08 04:22:50

标签: excel-vba vba excel

我想创建一个文本框,但该文本框只能按日期格式输入而不能输入。

1 个答案:

答案 0 :(得分:0)

据我所知,您不能(轻松)强制TextBox中的文本始终是有效日期,但您可以检查用户尝试离开TextBox时输入的内容:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsDate(TextBox1.Text) Then
        MsgBox "Date required"
        Cancel = True
    End If
    'Display value in another textbox for testing purposes
    TextBox2.Text = Format(CDate(TextBox1.Text), "dd/mm/yyyy")
End Sub

使用IsDate将允许输入任何系统识别日期,因此您应使用CDate(TextBox1.Text)来访问输入的日期。不要依赖于文本本身的特定格式,因为输入的文本可以是,例如:

  • "08/03/2017"
  • "8 March 2017"
  • "8 Mar"
  • "8/3/17"