Plot Tanggal dan Waktu

Saya menggunakan Excel VBA untuk mengimpor file teks dan menganalisis data.

Saya ingin sumbu x dengan format tanggal dan waktu.

File asli menyertakan string waktu berikut.

"20200324160900340", yaitu "YYYYMMddhhmmss.milidetik".

Saya memiliki fungsi untuk menghapus milidetik dan mengubah string ini menjadi string lain dengan format "24/03/2020 16:09:00".

Akhirnya saya bisa memplot data dengan nilai Y menggunakan yang berikut ini:

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

Grafik diplot dengan benar tetapi saya tidak dapat melihat nilai waktu dan jika saya memaksakannya secara manual saya melihat sesuatu seperti "01-01-1900", yang tidak masuk akal.


person M.Bolzoni    schedule 25.03.2020    source sumber
comment
Saya memiliki fungsi untuk menghapus milidetik... bisakah Anda mengedit pertanyaan Anda dengan kode itu? Pertanyaan Anda harus memiliki contoh minimal yang dapat direproduksi   -  person BigBen    schedule 25.03.2020
comment
Anda tidak dapat memplot STRINGS pada bagan. Ubah string waktu menjadi angka (nilai tanggal/waktu) dan kemudian Anda dapat memplotnya.   -  person Excel Hero    schedule 25.03.2020


Jawaban (1)


Anda tidak dapat memplot STRINGS pada bagan. Ubah string waktu menjadi angka (nilai tanggal/waktu) dan kemudian Anda akan dapat memplotnya dengan benar.

Di bawah ini adalah fungsi VBA yang akan mengubah string teks Anda menjadi nilai tanggal/waktu 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

Perhatikan bahwa nilai-nilai ini akan terlihat seperti ini: 43914.6729166667.

Itulah yang Anda inginkan. Jika Anda ingin melihat nilai tanggal-waktu dengan cara yang lebih bersahabat, gunakan pemformatan angka untuk menghasilkan sesuatu seperti, 2020-03-24 16:09:00.

person Excel Hero    schedule 25.03.2020