在activex文本框VBA中设置日期格式为dd-mm -yyyy



是否有办法在ActiveX文本框中设置日期格式为dd-mmm-yyyy ?

我使用下面的代码来分隔引用,但是当用户输入月份时出现了一个错误。,即1993年5月31日,但有时用户会写上2015年5月31日。

由于无法从服务器获取数据…

Private Sub TextBox1_Change()
    If TextBox1.TextLength = 2 Or TextBox1.TextLength = 6 Then
    TextBox1.Text = TextBox1.Text + "-"
    End If
End Sub

我可以建议你采取不同的方法,并做一些类似的事情(注意,这是未经测试的,不是最终的代码,只是一些建议如何处理这个问题):

Private Sub Textbox1_LostFocus()
  Dim Da as Date
  Da = CDate(Textbox1.Text)
  Textbox1.Text = Format(Da, "dd-mmm-yyyy")
End Sub

这将:

  • 取用户在活动框外点击时输入的任何文本(LostFocus而不是每次按键都运行)
  • 将值转换为日期
  • 按需要的格式输入文本框(dd-mm -yyyy)

你可以在此添加错误处理,这样如果vba不能将其转换为日期,它可以向用户报告他们输入了一个不正确的值,并在继续之前纠正它。

我也不主张这是最佳实践,而是OP可以让他的方法工作的一种方式。

最新更新