Mac版Excel VBA中Double变量赋值触发运行时错误‘6’溢出问询
Double类型变量互相赋值触发VBA运行时错误‘6’(溢出)的问题分析
环境信息
- 操作系统:Mac OS 13.5.1
- Excel版本:Microsoft 365 Excel for Mac 16.78
- VBA版本:7.1
问题重现
在上述环境中,执行以下代码时,a = b这一行会触发运行时错误‘6’:溢出:
Option Explicit Sub test2() Dim a As Double Dim b As Double a = 0 b = 10 Debug.Print a; b a = b 'a = Round(b, 10) Debug.Print a; b End Sub
补充现象
- 若将赋值语句改为
a = Round(b, 10),则不会触发错误 - 若将变量类型改为Variant或其他类型(如Single),该问题也不会出现
- Double类型本身设计支持同类型直接赋值,此现象属于Mac版Excel VBA的疑似bug
临时解决方案
- 使用
Round函数对赋值的数值进行处理后再赋值 - 若业务逻辑允许,将变量临时改为Variant类型
- 尝试更新Microsoft 365 Excel for Mac到最新版本,确认是否已修复该bug
内容的提问来源于stack exchange,提问作者Andrew Duncan
相关产品推荐
相关产品推荐

