一旦2个字符进入VBA用户表单,跳过特殊字符

时间:2014-10-10 07:04:04

标签: excel vba excel-vba

不确定是否可行但是有一段代码表明当你输入2个字符时它会跳过:或/符号(一个用于日期和一个用于需要手动输入的时间。

我猜它需要在文本框的更改事件中,但不确定在输入2之后将焦点设置为3位数的代码类型。

由于 人

1 个答案:

答案 0 :(得分:1)

假设您有一个示例UserForm1,其中包含2个TextBoxes(日期为TextBox1,时间为TextBox2

enter image description here

您可以不断检查文本框中键入的字符串的长度,如果日期等于8,则操作值的时间等于4,即。

Private Sub TextBox1_Change()
    Dim current As String
    current = TextBox1.Value

    If Len(TextBox1) = 8 Then
        current = Left(TextBox1, 2) & "/" & Mid(TextBox1, 3, 2) & "/" & Right(TextBox1, 4)
        TextBox1 = current
    End If

End Sub

Private Sub TextBox2_Change()
    Dim current As String
    current = TextBox2.Value

    If Len(TextBox2) = 4 Then
        current = Left(TextBox2, 2) & ":" & Right(TextBox2, 2)
        TextBox2 = current
    End If
End Sub

所以现在如果你启动UserForm1并输入例如10102014,代码会自动将其转换为日期格式,在字符之间添加正斜杠。同样适用于时间

enter image description here