Я настраиваю пользовательскую форму для сотрудников, чтобы заполнять данные. Они должны заполнить дату как DD-MM-YYYY, выходные данные также должны быть DD-MM-YYYY. Однако код, который я использую, изменяет ввод 5-12-2019 (ДД-ММ-ГГГГ) на вывод 12-5-2019 (ММ-ДД-ГГГГ). В пользовательской форме он остается на уровне (ДД-ММ-ГГГГ), ожидаемом при переносе его на лист Excel. Если месяц больше 13, он не меняется, поэтому ввод 13-12-2019 (ДД-ММ-ГГГГ) остается выводом 13-12-2019 (ДД-ММ-ГГГГ). Как это возможно, что код изменяет вывод, но не каждый раз одинаково, я сделал что-то не так в коде?
Private Sub TextBox1_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean)
If IsDate(Me.TextBox1.Text) Then
Me.TextBox1.Text = Format(Me.TextBox1.Text, "DD-MM-YYYY")
Else
MsgBox "Vul een geldige datum in", vbRetryCancel + vbCritical
End If
End Sub
Public Function IsTime(Expression As Variant) As Boolean
If IsDate(Expression) Then
IsTime = (Int(CSng(CDate(Expression))) = 0)
End If
End Function