Microsoft KB Archive/875526

= Milliseconds are rounded to the nearest second when you try to assign the VBA Date format or the Variant Date format to a cell in an Excel worksheet =

Article ID: 875526

Article Last Modified on 2/13/2007

-

APPLIES TO


 * Microsoft Office Excel 2007
 * Microsoft Office Excel 2003
 * Microsoft Excel 2002 Standard Edition
 * Microsoft Excel 2000 Standard Edition

-





SYMPTOMS
When you make a programmatic change to the value in a cell in a Microsoft Excel worksheet, the millisecond value that you specify is rounded to the nearest second. This issue occurs when the following conditions are true:
 * The change that you make assigns the VBA Date format or the Variant Date format to the cell.
 * You make the programmatic change by using a Visual Basic for Applications macro or by using an external Automation client.

This issue does not occur when the change that you make assigns the Date format or the Time format to the cell.



CAUSE
This issue occurs because Excel internally formats date strings according to the date and time format that is specified on the Regional Options tab of the Regional and Language Options item in Control Panel. This value is rounded to the nearest second. Excel assigns this value to the cell and then recalculates the value to produce a new date value for the cell.



WORKAROUND
Use one of the following methods to work around this issue.

Method 1
You can convert the date value into a string format that contains a fraction of a second. This string value can be assigned to and calculated as a date format that retains the milliseconds.

Method 2
You can use the Value2 property of the Range object to retain the milliseconds. For example, you can use the following VBA code. Sub CopyValueUsingVBDate Dim d As Date d = ActiveSheet.Range(&quot;A1&quot;).Value ActiveSheet.Range(&quot;B1&quot;).Value2 = d End Sub For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

182812 Description of the Value2 property for the Range object

Additional query words: excel2003 excel2002 excel2000 xl2003 xl2002 xl2000 xl2k3 xl2k2 xl2k XL2007

Keywords: kbvba kbprogramming kbautomation kbtshoot kbprb KB875526

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.