Excel VBA,如何使文本框格式仅适用于日期

Excel VBA,如何使文本框格式仅适用于日期,excel,vba,Excel,Vba,我想做一个文本框,但该文本框只能按日期格式输入,其他什么都不能 据我所知,您无法(轻松地)强制文本框中的文本始终为有效日期,但您可以在用户试图离开文本框时检查输入的内容: Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Not IsDate(TextBox1.Text) Then MsgBox "Date required" Cancel = True End

我想做一个文本框,但该文本框只能按日期格式输入,其他什么都不能

据我所知,您无法(轻松地)强制文本框中的文本始终为有效日期,但您可以在用户试图离开文本框时检查输入的内容:

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”
  • “2017年3月8日”
  • “3月8日”
  • “8/3/17”

您可以将文本框链接到工作表中的单元格,然后将该单元格格式化为日期。只需点击文本框。在公式栏中键入
=
,然后单击应设置为日期格式的目标单元格。我的意思是,与此不同。。我制作了一个包含文本框调用日期的用户表单,我希望文本框只能按日期格式(如mm/dd/yyyy)输入,并且用户不能在其中输入任何单词。您是指用户表单
textbox
?或者一个
输入框
?用户\u form textbox实际上我对该格式有想法,所以我制作了一个标签,告诉用户日期文本框只能使用mm/dd/yyyy格式,如果用户使用另一种格式,那么我已经告诉了,或者他们在其中输入了一个单词,它会弹出一个msgbox。。。我已经找到了一种方法,但是我忘记保存,我把它弄丢了,现在我忘记了代码是什么。。。我只记得它与“dim a as date”有关,其余的我都忘了…@EkaOktavianus从用户体验的角度来看,通常最好允许他们以自己喜欢的任何格式输入日期-不要将他们限制为一种特定的格式。如果程序使用该日期作为
日期
,则程序只关心该日期是否有效。