0.08% 0.13% 0.05% 0.05% 0.17%
Cells(y, 8) , Cells(y, 9) ,Cells(y, 10) ,Cells(y, 11),Cells(y, 12),

解决方案 »

  1.   

    你的cells(y,8)应该不是定义的doubl类型吧你这样试验一下,用数值代替cells(y,8)等等做一次计算
      

  2.   

    用cdbl强制转一下吧,cdbl(cells(y,8))
      

  3.   

    Sub Test()
        Dim c8 As Double
        Dim c9 As Double
        Dim c10 As Double
        Dim c11 As Double
        Dim c12 As Double
        Dim z As Double
        
        c8 = 0.08 / 100
        c9 = 0.13 / 100
        c10 = 0.05 / 100
        c11 = 0.05 / 100
        c12 = 0.17 / 100
        
        z = Format((c12 / (((c8 + c9 + c10 + c11) / 4))), "0.000000000000") - 1#
        
        Debug.Print z
    End Sub
     1.193548387097
    经测试不会溢出!
    你用 TypeName(Cells(y, 12)) 看看到底是什么数据类型。
    解决方法如 #14
      

  4.   

    cells(y,8)里面有变量  能定义为double类型么?
      

  5.   

    0.08% 0.13% 0.05% 0.05% 0.17%
    前面的数只是一个约数,在excel表格里面点开之后是一个16位的小数。
    z = Format((c12 / (((c8 + c9 + c10 + c11) / 4))), "0.000000000000") - 1#
    这个函数输入进去不知道为什么显示是 未定义的,,,
    我想要将16位的小数只保留小数点后四位,用double a=1.2333333333;
     a = (( int )(a * 10000.0))/10000.0语句
    结果也总是报错好纠结
      

  6.   

    如果正常函数提示未定义,首先怀疑编译错误太多,导致IDE不能正确指明错误位置。
    选项\通用\请求时编译 不要选中。
    然后调试菜单下选编译,逐个改错吧。
    可以先把代码全注释起来,逐段放开编译。