當您嘗試將 VBA 日期格式或變型日期格式指派給 Excel 工作表中的儲存格時,會將毫秒四捨五入到最接近的秒數

徵狀

當您在 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 屬性描述

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×