VB报溢出错误

zzllvlv 2019-07-11 03:04:09
Sub 计算器件采购量()
Dim tmp1 As Integer, tmp2 As Integer, Total As Integer, amount1 As Integer
Dim i As Integer, j As Integer, result As Long, count As Integer, index As Integer

'0-计算元器件表中元器件数量
Total = Sheet1.Range("A2").End(xlDown).Row - 1
'1-获取最后一张部件工作表的索引
count = Worksheets.count - 1

'2-循环表中每一个元器件
For i = 2 To Total
result = 0
'3-循环每一张工作表,从第2张表开始
For index = 2 To count
'3.1-获取该工作表器件总数
amount = Worksheets(index).Range("B2").End(xlDown).Row - 1
'3.2-循环部件的每一个器件
For j = 2 To amount
'如果找到对应元器件,就用器件/个PCB数量*PCB数量,保存到result中
If Sheet1.Cells(i, "A") = Worksheets(index).Cells(j, "B") Then
tmp1 = Worksheets(index).Cells(j, "J") * Worksheets("最后-部件需求").Cells(3, "C")
tmp2 = result + tmp1
result = tmp2
'退出循环
Exit For
End If
Next
Next

Next
End Sub
3.2的循环结束时,j=30,再往下运行就报溢出错误了,请问怎么回事?
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzllvlv 2019-07-11
  • 打赏
  • 举报
回复
我找到原因了,其实是因为在调用range.end的时候,列中有空白项或者全是空白项,会导致查询数据边界错误,只要将不需要的项填成0等其他不需要的数据就可以了。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧