График даты и времени в VBA Excel - PullRequest
0 голосов
/ 25 марта 2020

Я использую Excel VBA для импорта текстового файла и анализа данных из внешнего кода. Я хотел бы иметь ось X с форматом DATE + Time, чтобы я мог сравнивать свои данные также по времени.

Исходный файл содержит следующую строку для ВРЕМЕНИ "20200324160900340", то есть "ГГГГММддччммсс.миллисекунды". У меня есть функция для удаления миллисекунд и преобразования этой строки в другую со следующим форматом «2020/03/24 16:09:00». Наконец, я могу построить данные с Y-значениями, используя следующее:

Set sh = ActiveWorkbook.Worksheets(1)
Set CH1 = sh.ChartObjects(1).Chart

[...]

With CH1
            With .SeriesCollection.NewSeries
                .Values = Elapsed 'Double Values
                .XValues = Time 'String Values format "YYYY-MM-dd hh:mm:ss"
                .Name = File_name

            End With
            .HasTitle = True
            With .Axes(xlCategory, xlPrimary)
                .CategoryType = xlTimeScale
            End With
End With

График построен правильно, но я не могу видеть значения времени, и если я их принудительно заставлю, я вижу что-то вроде "01-01- 1900 ", что не имеет смысла.

Может ли кто-нибудь мне помочь?

Заранее спасибо

1 Ответ

0 голосов
/ 25 марта 2020

Вы не можете наносить СТРУНЫ на график. Преобразуйте строки времени в числа (значения даты / времени), и тогда вы сможете правильно их отобразить.

Ниже приведена функция VBA, которая преобразует ваши текстовые строки в значения даты / времени Excel ...

Function TextToDateTime(s)
    Dim yy, mm, dd, hh, mn, ss

    yy = Mid(s, 1, 4)
    mm = Mid(s, 5, 2)
    dd = Mid(s, 7, 2)
    hh = Mid(s, 9, 2)
    mn = Mid(s, 11, 2)
    ss = Mid(s, 13, 2)

    TextToDateTime = DateSerial(yy, mm, dd) + TimeSerial(hh, mn, ss)

End Function

Обратите внимание, что эти значения будут выглядеть примерно так: 43914.6729166667.

Это именно то, что вы хотите. Если вы хотите sh для более удобного просмотра значений даты и времени, используйте числовое форматирование, чтобы получить что-то вроде 2020-03-24 16:09:00.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...