徵狀
當您在 Microsoft Excel 工作表中對儲存格中的值進行程式設計變更時,您指定的毫秒值會四捨五入到最接近的秒。 當下列情況成立時,就會發生此問題:
-
您所做的變更會將 [VBA 日期格式] 或 [可變日期] 格式指派給儲存格。
-
您可以使用 Visual Basic for Applications 宏或使用外部自動化用戶端來進行程式設計變更。
當您所做的變更會將日期格式或時間格式指派給儲存格時,就不會發生這個問題。
原因
之所以會發生這個問題,是因為 Excel 會根據 [控制台] 的 [地區及語言選項] 索引標籤上的 [區域選項] 索引標籤中指定的日期和時間格式,在內部格式化日期字串。 此值會四捨五入到最接近的秒。 Excel 會將這個值指派給儲存格,然後重新計算值,為儲存格產生新的日期值。
因應措施
使用下列其中一種方法來解決此問題。
方法 1
您可以將 date 值轉換成包含第二個分數的字串格式。 這個字串值可以指派給並計算為保留毫秒的日期格式。
方法 2
您可以使用 Range 物件的 Value2 屬性來保留毫秒。 例如,您可以使用下列 VBA 程式碼。
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
如需其他資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
182812 範圍物件的 Value2 屬性描述