You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LongLong溢出问题:Access VBA 秒转毫秒计算报错排查

问题根源

VBA执行算术运算时,会先按照参与运算的字面量默认类型做中间计算,不会提前匹配最终赋值变量的类型。你代码里的474、86400、1000默认均为32位Long类型,第一步计算474 * 86400时结果已经超过32位Long的最大取值(2147483647),还未到赋值给LongLong变量的步骤就已经触发溢出报错,和系统是否为64位、最终结果是否超出LongLong边界无关。

解决方案

有两种常用修复方式,任选其一即可:

  • 给任意一个参与运算的字面量添加LongLong类型声明符^,触发全链路LongLong精度运算:
Public Sub this()
    Dim this As LongLong
    this = 474^ * 86400 * 1000
End Sub
  • 用CLngLng()函数转换任意一个参与运算的操作数为LongLong类型:
Public Sub this()
    Dim this As LongLong
    this = CLngLng(474) * 86400 * 1000
End Sub

内容的提问来源于stack exchange,提问作者Doug Coats

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:21:01