Как получить гггг-мм-дд из мм / дд / ггг в Excel - PullRequest
0 голосов
/ 31 января 2020

У меня есть дата в формате мм / дд / гггг из текстового поля в пользовательской форме, и я хочу получить каждое значение мм, дд и гггг в число. (Например, 10.10.1220 станет 2020-10-12)

Вот мой код, который завершает часть месяца.

Dim DateDay As String, DateMonth As String, DateYear As String
Dim firstslash As Integer, secondslash As Integer
firstslash = InStr(TextBox3, "/")
DateMonth = Left(TextBox3, firstslash - 1)
If Len(DateMonth) = 1 Then
DateMonth = "0" & DateMonth
End If

'code for day and year

MsgBox("Date =" & DateYear & "-" & DateMonth & "-" & DateDay)

Как я могу добавить к это так, он может получить день и год часть?

1 Ответ

0 голосов
/ 31 января 2020

Хитрость заключается в том, чтобы убедиться, что вы имеете дело с датой , то есть большим целым числом (на сегодня 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...