Хитрость заключается в том, чтобы убедиться, что вы имеете дело с датой , то есть большим целым числом (на сегодня 43861). Поэтому вы должны преобразовать все, что есть в текстовом поле, в целое число, представляющее дату. Эту true дату вы можете затем представить в любом формате, который вы хотите. Код ниже делает именно это.
Private Sub CallExtractDate()
Dim Dat As Date
Dat = ExtractDate("01/31/2020")
MsgBox Format(Dat, "yyyy-mm-dd") & vbCr & _
Format(Dat, "ddd, dd mmm, yyyy") & vbCr & _
Format(Dat, "dddd")
End Sub
Function ExtractDate(ByVal TxtDate As String) As Date
Dim Sp() As String
If IsDate(TxtDate) Then
ExtractDate = CDate(TxtDate)
Else
Sp = Split(TxtDate, "/")
On Error Resume Next
ExtractDate = DateSerial(Int(Sp(2)), Int(Sp(0)), Int(Sp(1)))
End If
End Function
В вашем проекте вы, вероятно, использовали бы функцию с таким вызовом.
Dat = ExtractDate(TextBox1.Value)