VB.NET Datenimport aus Excel Zeitstempel

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von petaod.

    VB.NET Datenimport aus Excel Zeitstempel

    Guten Tag zusammen,

    ich schreibe an einem VB.NET Programm welches auf eine Exceltabellen mit Daten zugreifen soll.
    In meinem Problem geht es um den Zugriff/Import eines Zeitstempels.
    Das Programm Import zwar eine Zeit diese weicht aber insbesondere beim Datum von der Exceldatei ab.

    Mein vorgehen ist wie folgt:

    Quellcode

    1. Sub DatenEinlesen()
    2. Dim objExcel As Excel.Application
    3. Dim objWorkbook As Excel.Workbook
    4. Dim objWorksheet As Excel.Worksheet
    5. Dim Stunde As String
    6. Dim Minute As String
    7. Dim Sekunde As String
    8. Dim Tag As String
    9. Dim Monat As String
    10. Dim Jahr As String
    11. objExcel = CType((CreateObject("Excel.Application")), Excel.Application)
    12. objWorkbook = objExcel.Workbooks.Open(Tb_Quellverzeichnis.Text & "\" & QuelldateiName)
    13. objExcel.Visible = False
    14. objWorksheet = CType(objWorkbook.Sheets(1), Excel.Worksheet)
    15. Dim dt As DateTime = (New DateTime()).AddDays(objWorksheet.Range("A2").Value)
    16. Stunde = dt.Hour
    17. Minute = dt.Minute
    18. Sekunde = dt.Second
    19. Tag = dt.Day
    20. Monat = dt.Month
    21. Jahr = dt.Year
    22. End Sub


    In Excel wird in der Zelle "A2" folgender Inhalt angezeigt: 22.02.2017 09:03:42

    Beim Debuggen wird mir für dt #2/25/0118 09:03:42 AM# angezeigt.

    Wie ihr dem Code entnehmen könnt möchte ich den Zeitstempel zerlegen um in später im Programm weiter verwenden zu können.
    Ich verwende das aktuelle Office 365 unter Windows 10.

    Programmierumgebung ist Visual Studio 2017.


    Zum besseren Nachvollziehen habe ich die Excel Datei angehängt.

    Wäre schön wenn jemand einen Denkanstoß hätte.

    Vielen Dank schon mal.

    Viele Grüße

    Daniel
    Dateien
    • Input.xlsx

      (1,65 MB, 97 mal heruntergeladen, zuletzt: )

    D@niel schrieb:

    Dim dt As DateTime = (New DateTime()).AddDays(objWorksheet.Range("A2").Value)
    VB.Net DateTime hat den Nullpunkt bei 01.01.0001
    Excel hat den Nullpunkt bei 00.01.1900
    Du musst also deine AddDays auf den Excel-Nullpunkt anwenden.

    Du kannst aber auch DateTime.FromOADate verwenden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --