Symptom
När du gör en programändring till värdet i en cell i ett kalkyl blad i Microsoft Excel avrundas det millisekundiga värdet som du anger till närmaste sekund. Det här problemet uppstår om följande gäller:
-
Den ändring du gör tilldelas VBA-formatet eller datum formatet för varianten till cellen.
-
Du gör program ändringen med ett VBA-makro eller en extern Automation-klient.
Det här problemet uppstår inte när den ändring du gör tilldelas datum format eller tids format till cellen.
Orsak
Det här problemet uppstår eftersom Excel formaterar Datum strängar i enlighet med datum-och tids format som anges på fliken nationella inställningar i alternativet nationella inställningar och språk inställningar på kontroll panelen. Det här värdet avrundas till närmaste sekund. Det här värdet tilldelas i Excel och sedan beräknas värdet för att skapa ett nytt datum värde för cellen.
Lösning
Använd någon av följande metoder för att undvika problemet.
Metod 1
Du kan konvertera datum värden till ett sträng format som innehåller en bråkdel av en sekund. Det här strängvärdet kan kopplas till och beräknas som ett datum format som behåller millisekunderna.
Metod 2
Du kan använda egenskapen värde2 för Range-objektet för att behålla millisekunderna. Du kan till exempel använda följande VBA-kod.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Om du vill veta mer klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:
182812 Beskrivning av egenskapen värde2 för Range-objektet