Milliseconden worden afgerond op de dichtstbijzijnde seconde wanneer u de datumnotatie van de VBA of de variant van de variant probeert toe te wijzen aan een cel in een Excel-werkblad


Symptomen


Wanneer u in een Microsoft Excel-werkblad een in-en uitzoomen op de waarde van een cel, wordt de waarde van milliseconden afgerond naar de eerstvolgende seconde. Dit probleem doet zich voor wanneer aan de volgende voorwaarden wordt voldaan:
  • De wijziging die u aanbrengt, wijst de gewenste VBA-datumnotatie of de variant datumnotatie toe aan de cel.
  • U maakt de programmatische wijziging via een Visual Basic for Applications-macro of met behulp van een externe automatiserings client.
Dit probleem treedt niet op wanneer de wijziging die u aanbrengt, de datumnotatie of de tijdnotatie aan de cel toewijst.

Oorzaak


Dit probleem doet zich voor omdat datumreeksen in Excel intern worden opgemaakt op basis van de datum-en tijdnotatie die is opgegeven op het tabblad land instellingen van het onderdeel land instellingen in het Configuratiescherm. Deze waarde wordt afgerond op de dichtstbijzijnde seconde. Deze waarde wordt toegewezen aan de cel en vervolgens wordt de waarde opnieuw berekend voor het maken van een nieuwe datumwaarde voor de cel.

Workaround


Gebruik een van de volgende methoden om dit probleem tijdelijk op te lossen.

Methode 1

U kunt de datumwaarde converteren naar een tekenreeksindeling die een breuk van een seconde bevat. Deze tekenreekswaarde kan worden toegewezen aan en berekend als een datumnotatie die de milliseconden behoudt.

Methode 2

U kunt de eigenschap waarde2 van het Bereikobject gebruiken om de milliseconden te behouden. U kunt bijvoorbeeld de volgende VBA-code gebruiken.
Sub CopyValueUsingVBDate()   Dim d As Date   d = ActiveSheet.Range("A1").Value   ActiveSheet.Range("B1").Value2 = dEnd Sub
Als u meer informatie wilt, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
182812 Beschrijving van de eigenschap waarde2 voor het Bereikobject