大神 帮我看下 vba中 on error goto的问题

Sub循环()OnErrorGoTo100Fori=2To8DoUntili>8Sheet1.Cells(i,4)=Sheet1.Cells(i,2)+Sheet1.Ce... Sub 循环()On Error GoTo 100For i = 2 To 8 Do Until i > 8 Sheet1.Cells(i, 4) = Sheet1.Cells(i, 2) + Sheet1.Cells(i, 3) GoTo d100: MsgBox "对不起,错误发生在第" & i & "行" Loopd:Next iEnd Sub代码是为了算总分,当有未考的时候,不算总分,并提示信息,帮忙看下,运行到第五行要算陈6的时候,提示我 错误类型,13
提示错误 13
展开
 我来答
一箭惊仙
2018-05-05 · TA获得超过870个赞
知道小有建树答主
回答量:1724
采纳率:62%
帮助的人:620万
展开全部

你可真棒,能用两句代码写出这么混乱的结构,好像生怕别人不知道你会用goto和on error。

你那报错算幸运的了,不报错的话就凭你那do loop也是死循环。

Sub 循环()
On Error GoTo Err_Handle:
Dim Err_Info As String: Err_Info = ""
Dim i As Byte: i = 0
For i = 2 To 8
  Cells(i, 4) = Cells(i, 2) + Cells(i, 3)
Next i
If Err_Info <> "" Then MsgBox ("错误出现在第" & Err_Info & Chr(10) & "行")
Exit Sub
Err_Handle:
Err_Info = Err_Info & Chr(10) & i
Resume Next
End Sub
lu_zhao_long
2018-05-05 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:2846万
展开全部
Sub 循环()
For i = 2 To 8
With Sheet1
If IsNumeric (.Cells(i, 2)) AND IsNumeric (.Cells(i, 3)) Then
.Cells(i,4) = .Cells(i,2) + .Cells(i,3)
End If
End With
Next i
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桡映丶宸
2018-05-05 · TA获得超过154个赞
知道小有建树答主
回答量:283
采纳率:41%
帮助的人:71.8万
展开全部
goto的标示要以字母打头吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式