是否有办法在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可以让他的方法工作的一种方式。