在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
添加回答
举报
0/150
提交
取消