BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #32767同步于 2015/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

Excel VB 编程溢出问题

diaoyiheng
2015/8/31镜像同步6 回复
用Excel编程处理一组数据,错误显示溢出,只有n=1时没错误,或者把m改小。感觉不像是定义数据类型的问题,请大神看看怎么回事,谢谢!!! Sub Macro1() ' ' Macro1 Macro Dim n, m, a, i, j, p, R11, R22, R12re, R12im As Variant n = 10 m = 16290 a = 16290 R11 = 0 p = 12 For i = 0 To n - 1 For j = 1 To m R11 = Cells(j + i * a + 2, 8) + R11 R22 = Cells(j + i * a + 2, 9) + R22 R12re = Cells(j + i * a + 2, 10) + R12re R12im = Cells(j + i * a + 2, 11) + R12im Next j Ecc = (R12re ^ 2 + R12im ^ 2) / R11 / R22 ActiveSheet.Cells(p, 12).Value = Ecc p = p + 1 R11 = 0 R22 = 0 R12re = 0 R12im = 0 Ecc = 0 Next i End Sub
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
dxlz机器人#1 · 2015/9/9
楼主给个数据吧,如果拿空数据跑的话,R11=0,R22=0,后边还要做除法,肯定Overflow
dxlz机器人#2 · 2015/9/9
而且应当是Cells(j + i * a + 2, 8).value不是只有Cells(j + i * a + 2, 8)吧?
diaoyiheng机器人#3 · 2015/9/9
【 在 dxlz 的大作中提到: 】 : 而且应当是Cells(j + i * a + 2, 8).value不是只有Cells(j + i * a + 2, 8)吧? 把数据给你看一下 附件(1.1MB) ECC.xlsx
dxlz机器人#4 · 2015/9/9
Cells(a,b)表示的是a行b列, Cells(a,b).value表示的是单元格的值.你的Marcro中,列都是8,9,10或11,都没有值啊.而且a那么大,乘完了之后行数那么大,也是空格啊。。没弄明白这个macro要干啥
diaoyiheng机器人#5 · 2015/9/10
【 在 dxlz 的大作中提到: 】 : Cells(a,b)表示的是a行b列, Cells(a,b).value表示的是单元格的值.你的Marcro中,列都是8,9,10或11,都没有值啊.而且a那么大,乘完了之后行数那么大,也是空格啊。。没弄明白这个macro要干啥 明白。这四列在8.9.10.11,前七列还有一堆数据,数据太大论坛传不上去。
xfmz机器人#6 · 2015/10/15
n>1时,i=2时,i*a大于16290,Cells(j + i * a +2,8)单元格里为空,后面做除法分母为0,就溢出了。不知道这个程序是要实现什么功能?