在VBA里这段程序只有引用中间段数据的时候可用,前面数据运算显示除数为0,后面的数据运算显示溢出

PrivateSubcmd_Click()Dimarr()AsVariantDimindex1AsVariant,index2AsVariant,gdp1AsVarian... Private Sub cmd_Click()
Dim arr() As Variant
Dim index1 As Variant, index2 As Variant, gdp1 As Variant, gdp2 As Variant, i, j
arr = Range("A1:C62")
For i = LBound(arr) To UBound(arr)
If a.Value = arr(i, 1) Then
gdp1 = arr(i, 2)
index1 = arr(i, 3)
End If
Next i
For j = LBound(arr) To UBound(arr)
If b.Value = arr(j, 1) Then
gdp2 = arr(j, 2)
index2 = arr(j, 3)
End If
Next j
c.Value = (index1 / index2) * gdp2
d.Value = gdp1 / ((index1 / index2) * gdp2)
End Sub
展开
 我来答
落叶l无情
2014-10-05 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1422万
展开全部
当所有arr(j,1)不符合b.Value = arr(j, 1) 条件时,index2=0(默认值为0),这样就会导致除数为0的错误。
c.value,d.value 不知道是什么类型,如果是整形的话,最大是65536,根据你的代码,很容易超过这个值,导致溢出。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式