als meine erste Frage habe ich ein Problem mit Datum/Uhrzeit in einem wissenschaftlichen Projekt bei der Analyse von großen Datensätzen mit Laborwerten.
Aufgrund der internationalen Nutzer gehe ich die Datensätze immer durch und prüfe um dann auch, um leere Datensätze zu erkennen, etc.
Bisher haben wir nur das Datum ohne Uhrzeit verwendet und das klappte gut.
Neu ist, dass wir nun auch die Uhrzeit aus Stunden und Minuten verwenden möchten, wenn vorhanden. Das entscheidet der Anwender durch die Formatangabe.
Das Datum liegt in einem Array. Das Gesamtprojekt ist so groß, dass ich nicht die ganze Datei hochladen kann.
Codeausschnitt:
Case 4 'Prüft das Testdatum iVar=4 auf Datumsformat (und sortiert aufsteigend)
Dim dformat As String 'für die spezifische regionale Formatierung des Datums
If iCol = 0 Then
'iCol=0 es wurde keine Spalte für Auftragsdatum ausgewählt
For i = 1 To nRows
arrOutput(i, iVar) = sNA 'trotzdem wird der Standarddatensatz komplett mit NA gefüllt
Next
Exit Function
Else
dformat = "dd.mm.yyyy hh:mm" 'wird eigentlich vom Anwender festgelgt
For i = 1 To nRows
If VBA.IsDate(arrData(i, iCol)) = False Or VBA.CStr(arrData(i, iCol)) = Empty Then
' leere oder unplausible Datensätze mit NA ersetzen
arrOutput(i, iVar) = sNA
Else
arrOutput(i, iVar) = Format(CDate(arrData(i, iCol)), dformat)
End If
Next
End If
Jetzt passiert etwas ungewöhnliches: immer wenn z.B. "10.04.2022 00:00" im Ausgangsdatensatz steht, dann wird nur "10.04.2022" übernommen und die
Angaben der Zeit ignoriert. Zugegeben, es gibt nur wenige Datensätze, die genau auf diese Uhrzeit fallen aber wir werten die Daten später mit R aus und das ist da empfindlich, wenn die Uhrzeit doch fehlt.
Die dafür zuständige Codezeile ist:
arrOutput(i, iVar) = Format(CDate(arrData(i, iCol)), dformat)
Wir kann ich in VBA erzwingen, dass immer auch die "00:00" -Uhrzeit ausgegeben wird?
Ich hoffe, dass ich nicht zu viel gesabbelt habe...
Vielen Dank, Bernd