VBA中的数据类型。使用常量获取溢出错误但适用于变量

时间:2016-03-07 17:39:03

标签: vba

可能是非常基本的,听起来像一个非常愚蠢的问题。但我对此感到困惑。所以,当我尝试在double变量中执行1000 * 1000时,我得到溢出错误。我继续将变量自身加倍,它工作正常。有人可以解释,为什么?

python -m SimpleHTTPServer &

1 个答案:

答案 0 :(得分:3)

阿。 VBA我多么爱你。

在这种情况下,它将1000视为一个整数,在VB6中为16位(最大值为32767),因此它会溢出,因为100万太大而不适合整数。

你可以"演员"通过使用可怕的类型字符将文字转换为特定类型。

此处列出完整列表。是的,该功能在.NET中保留。 https://msdn.microsoft.com/en-us/library/s9cz43ek.aspx

Sub test()

    Dim x As Double

    x = 1000& * 1000&     ' Long literals

    x = 1000
    x = x * x * x * x ' ~~>> Works Fine

    MsgBox x

End Sub