Symptomer
Når du gjør en programmatisk endre verdien i en celle i et Microsoft Excel-regneark, avrundet millisekunders verdien du angir til nærmeste sekund. Dette problemet oppstår når følgende betingelser er oppfylt:
-
Endringen du gjør tilordner VBA datoformatet eller Variant datoformatet til cellen.
-
Du gjøre endringen programmatisk ved hjelp av en Visual Basic for Applications-makro eller ved hjelp av en ekstern automatiseringsklient.
Dette problemet oppstår ikke når du foretar endringen tilordner formatet dato- eller klokkeslettformat til cellen.
Årsak
Dette problemet oppstår fordi Excel formaterer internt datostrenger i henhold til dato- og klokkeslettformatet som er angitt i den
Kategorien Regionale innstillinger for region og språk -elementet i Kontrollpanel. Denne verdien er avrundet til nærmeste sekund. Excel tilordner denne verdien til cellen og deretter omberegner verdien for å produsere en ny dato-verdi for cellen.
Løsning
Bruk én av følgende metoder for å omgå dette problemet.
Metode 1
Du kan konvertere datoverdien til en streng som inneholder en brøkdel av et sekund. Denne strengverdien kan tilordnes og beregnes som et datoformat som beholder i millisekunder.
Metode 2
Du kan bruke egenskapen verdi2 for områdeobjektet skal beholdes i millisekunder. Du kan for eksempel bruke følgende VBA-koden.
Sub CopyValueUsingVBDate()
Dim d As Date
d = ActiveSheet.Range("A1").Value
ActiveSheet.Range("B1").Value2 = d
End Sub
Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
182812 -beskrivelse for egenskapen verdi2 for områdeobjektet