为了账号安全,请及时绑定邮箱和手机立即绑定

在VBA文本框中格式化MM/DD/YYYY日期

在VBA文本框中格式化MM/DD/YYYY日期

GCT1015 2019-07-06 17:40:01
在VBA文本框中格式化MM/DD/YYYY日期我正在寻找一种将VBA文本框中的日期自动格式化为MM/DD/YYYY格式的方法,我希望它在用户输入时格式化。例如,一旦用户输入第二个数字,程序将自动输入“/”。现在,我使用以下代码完成了这个工作(以及第二个破折号):Private Sub txtBoxBDayHim_Change()     If txtBoxBDayHim.TextLength = 2 or txtBoxBDayHim.TextLength = 5 then     txtBoxBDayHim.Text = txtBoxBDayHim.Text + "/"End Sub现在,这在打字时效果很好。然而,当尝试删除时,它仍然进入破折号,因此用户不可能删除其中一个破折号(删除一个破折号会导致长度为2或5,然后再运行,添加另一个破折号)。有什么更好的方法吗?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

添加一些跟踪长度的内容,并允许您对用户是否添加或减去文本进行“检查”。这是目前尚未测试,但类似的东西应该可以工作(特别是如果你有一个用户表单)。

'add this to your userform or make it a static variable if it is not part of a userformprivate oldLength as integerPrivate 
Sub txtBoxBDayHim_Change()
    if ( oldlength > txboxbdayhim.textlength ) then
        oldlength =txtBoxBDayHim.textlength        exit sub
    end if

    If txtBoxBDayHim.TextLength = 2 or txtBoxBDayHim.TextLength = 5 then
    txtBoxBDayHim.Text = txtBoxBDayHim.Text + "/"
    end if
    oldlength =txtBoxBDayHim.textlengthEnd Sub


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 2641 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信