Private Sub Command1_Click()
Dim n As Long
n = 1000 * 1000
Debug.Print n
End Sub---------------
上述代码运行时报错,overflow,错误代码6long表示的范围是多少啊?÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷对吗?

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim n As Long
    Dim a As Long
    a = 1000
    n = a * a
    Debug.Print n
    End Sub
      

  2.   

    n = 1000 * 1000
    n是Long,1000 * 1000不是Long,在给n赋值以前已经溢出了
      

  3.   

    不信Debug.Print 1000 * 1000试试
      

  4.   

    这些数据类型不是表示的范围么?
    1000不是long?viena(vienna维也纳)(胡逸之-贱人第二) ,帮忙解答下,
    我是低手,不好意思!
      

  5.   

    Debug.Print 1000 * 1000仍然溢出,错误代码6
    overflow
      

  6.   

    默认是Integer,16位,范围 -32,768 到 32,767
      

  7.   

    //Debug.Print 1000 * 1000//仍然溢出,错误代码6
    //overflow
    所以和n没有关系啊
      

  8.   

    那我不是指定n为long了吗?÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
    Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
    ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷n=1000*1000应该可以了啊!
      

  9.   

    怎么还不明白啊?说了和n没有关系!!!
    执行1000*1000这个运算的时候,结果并不是直接放在n里面的,常数的数据类型是按存储空间最小,能表示1000的数据类型是Integer,两个都是Integer,表达式的数据类型也是Integer
      

  10.   

    Debug.Print 32768 * 1000就不会溢出了,因为32768是Long,表达式就是Long
      

  11.   

    viena(vienna维也纳)(胡逸之-贱人第二)谢谢,问题解决!汗ing