Millisekunden werden auf die nächste Sekunde gerundet, wenn Sie versuchen, eine Zelle in einem Excel-Arbeitsblatt das VBA-Datumsformat oder das Variant-Datumsformat zuzuweisen.


Problembeschreibung


Wenn Sie eine programmgesteuerte Änderung an dem Wert in einer Zelle in einem Microsoft Excel-Arbeitsblatt vornehmen, wird der angegebene Millisekunden-Wert auf die nächste Sekunde gerundet. Dieses Problem tritt auf, wenn die folgenden Bedingungen zutreffen:
  • Die Änderung, die Sie vornehmen, weist der Zelle das Datumsformat VBA oder das Variant-Datumsformat zu.
  • Sie führen die programmgesteuerte Änderung mithilfe eines Visual Basic für Applikationen-Makros oder mithilfe eines externen Automatisierungsclients aus.
Dieses Problem tritt nicht auf, wenn die Änderung, die Sie vornehmen, das Datumsformat oder das Uhrzeitformat der Zelle zuweist.

Ursache


Dieses Problem tritt auf, weil Excel Datumszeichenfolgen intern entsprechend dem Datums-und Uhrzeitformat formatiert, das auf der Registerkarte Regionale Einstellungen des Elements Regions-und Sprachoptionen in der Systemsteuerung angegeben ist. Dieser Wert wird auf die nächste Sekunde gerundet. Excel weist diesen Wert der Zelle zu und berechnet dann den Wert neu, um einen neuen Datumswert für die Zelle zu erzeugen.

Problemumgehung


Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen.

Methode 1

Sie können den Datumswert in ein Zeichenfolgenformat umwandeln, das einen Bruchteil einer Sekunde enthält. Dieser Zeichenfolgenwert kann als Datumsformat zugewiesen und berechnet werden, das die Millisekunden aufrecht erhält.

Methode 2

Sie können die value2 -Eigenschaft des Range-Objekts verwenden, um die Millisekunden beizubehalten. So können Sie beispielsweise den folgenden VBA-Code verwenden.
Sub CopyValueUsingVBDate()   Dim d As Date   d = ActiveSheet.Range("A1").Value   ActiveSheet.Range("B1").Value2 = dEnd Sub
Wenn Sie weitere Informationen wünschen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
182812 Beschreibung der Value2-Eigenschaft für das Range-Objekt