Как разделить пользовательский формат DateTime в Excel с помощью макросов VB? - PullRequest
0 голосов
/ 27 октября 2018

У меня есть документ со следующим:

FullDateTime FullDate FullTime День Месяц Год Час Минута Секунда

дд / мм / гггг чч: мм: сс AM / PM

и я хотел бы заполнить другие столбцы с помощью макросов, чтобы разделить первый столбец и поместить целую дату, все время, день, месяц, год, час, минуту и ​​секунду в другие столбцы. FullDateTime - каждые пять минут, и я хочу, чтобы DateTime работал целый год. Я представляю, что код выглядит примерно так:

Sub Func()
    Dim 5mindays as Integer = 12*24*365
    Dim x As Integer
    Dim date
    Dim time
    For x = 1 To 5mindays
        Split(," ")
        Split(,"/")
        Split(,":")
        .Offset(0,1) = date(0)
        ...
        .Offset(0,8) = time(2)

        Add the next FullDateTime field below the existing one (adding 5 minutes)
    Next

Но понятия не имею, как на самом деле это сделать. Пожалуйста, дайте мне несколько идей о том, как решить эту проблему. Спасибо!

1 Ответ

0 голосов
/ 27 октября 2018

Попробуйте после задания правильного имени листа и года обработки

Option Explicit

Sub funk()

    Dim dt As Long, yr As Long, tm As Long, dttm As Double

    yr = 2018
    dt = DateSerial(yr, 1, 1)

    With Worksheets("sheet6")
        Do While Year(dt) = yr
            Do While TimeSerial(0, tm * 5, 0) < 1
                dttm = dt + TimeSerial(0, tm * 5, 0)
                .Cells(tm + 1 + (dt - DateSerial(yr, 1, 1)) * 288, "A").Resize(1, 9) = _
                    Array(dttm, dt, dttm - dt, _
                          Day(dt), Month(dt), yr, _
                          Hour(dttm), Minute(dttm), 0)
                tm = tm + 1
            Loop
            tm = 0
            dt = dt + 1
        Loop

        With .Range(.Cells(1, "A"), .Cells(.Rows.Count, "I").End(xlUp))
            .Columns("A").NumberFormat = "dd/mm/yyyy hh:mm:ss AM/PM"
            .Columns("B").NumberFormat = "dd/mm/yyyy"
            .Columns("C").NumberFormat = "hh:mm:ss"
            .Columns("D:I").NumberFormat = "0"
        End With
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...