Millisekunder er avrundet til nærmeste andre når du prøver å tilordne VBA datoformatet eller Variant datoformatet til en celle i et Excel-regneark


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