Ich bin neu in dieser Community, also bitte kritisieren Sie alles, was Sie wollen, auf diesem Post, wenn ich irgendwelche Anfängerfehler mache.VBA - Dezimal zu Zeit - Falscher Wert egal
Ich bin derzeit auf eine Aufgabe fest. Ich bin etwas neu in Visual Basic, aber mein Verständnis war bisher ziemlich gut. Ich kann jedoch anscheinend keine grundlegende Operation sortiert bekommen. Ich habe das Internet durchsucht und habe jetzt für ein oder zwei Tage meinen Kopf gegen die Wand geschlagen. Hoffentlich können Sie mir helfen, dies zu klären.
Ich importiere Zykluszeiten für verschiedene Aufträge aus einer Oracle-Datenbank. Sie werden in einer Spalte als Dezimalwerte (Anzahl der Stunden) zurückgegeben, aber ich möchte, dass sie als "Lange Zeit" ("hh: mm: ss") angezeigt werden. Was ich gelesen habe, sollte so einfach sein wie das Teilen durch 24 und das Ändern des Formats. Dies führt jedoch zu falschen Werten bei der Verwendung der Zellenwerte.
Beispiel:
? ws.Cells(i,6) 'Cycle times are placed in column 6 while looping over rows i.
0.050000
? Format(0.050000/24, "hh:mm:ss")
00:03:00
aber
? Format(ws.Cells(i,6)/24,"hh:mm:ss")
08:00:00
, die eindeutig nicht korrekt ist. 0,05 Stunden entsprechen 3 Minuten. Ich habe eine Änderung der Datumswert beobachtet auch:
? Format(0.05/24, "yyyy-mm-dd hh:mm:ss")
1899-12-30 00:03:00
? Format(ws.Cells(i,6)/24, "yyyy-mm-dd hh:mm:ss")
1905-09-13 08:00:00
Wie ist das überhaupt möglich !?ws.Cells(i,6)
gibt 0,05 zurück. Trotz dieser Format(ws.Cells(i,6)/24,"hh:mm:ss")
≠ Format(0.05/24,"hh:mm:ss")
habe ich versucht, Herumspielen mit Zahlenformate (Strings, Daten etc.), .Value
und .Value2
Weiß jemand, was los ist und warum dies geschieht?
Vielen Dank für Ihre Zeit im Voraus.
'? Format (ws.Cells (i, 6)/24, "hh: mm: ss") 'gibt mir' 00: 03: 00' –
Versuchen Sie, das in einer neuen Arbeitsmappe manuell einzugeben und zu sehen, ob Sie das gleiche Ergebnis erhalten? –
Ist der Wert von "i" gleich, wenn Sie es tun? ws.Cells (i, 6) 'und wenn du es tust? Format (ws.Cells (i, 6)/24, "hh: mm: ss") '? Es ist auch interessant, dass es "0.050000" und nicht "0.05" als Antwort auf "?" Zeigt. ws.Cells (i, 6) '. – YowE3K