使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

当你对 Microsoft Excel 工作表中的单元格的值进行编程更改时,你指定的毫秒值将舍入到最接近的秒。 如果满足以下条件,则会发生此问题:

  • 您所做的更改将把 VBA 日期格式或 Variant 日期格式分配给单元格。

  • 通过使用 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 Range 对象的 Value2 属性的说明

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×