问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 错误处理(陷阱),跳出本次循环进入下次循环后,不能再次处理错误

发布网友 发布时间:2022-05-05 11:39

我来回答

1个回答

热心网友 时间:2023-10-28 07:07

用goto的可读性很差,而且,你只在开头 On Error GoTo err_law_info_ceshi,跳一次就不再跳了.
你不如换种方法
on error resume next
err.clear
do.....
if err.number =0 then 没错
else 出错
end if 这样处理好些吧.
-------------------------以下为我帮你修改的代码,手写没有测试的,不知道能不能用.
Private Sub Command8_Click()

Dim i As Integer
For i = 0 To lst_file.ListCount - 1
lst_file.ListIndex = i
DBPath = "DBQ=" & lst_file.Text
strName_xls = lst_file.Text 'EXCEL文件名
strSheetName_xls = "sheet2" 'EXCEL表名

Dim rtnStr As String
rtnStr = ""
Dim cnstr As String
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strName_xls & ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"
If TryConnExcel(cnnstr, strSheetName_xls, rtnStr) Then
'这里是你的成功代码,
Exit For '如果你要退出

Else
'如果不成功你再处理别的吧.
lst_err.AddItem rtnStr & strName_xls

End If

Next
MsgBox "完成law_info"

End Sub

Function TryConnExcel(ByVal cnnstr As String, ByVal strSheetName_xls As String, ByRef strRtn As String) As Boolean
Dim conn_xls As New ADODB.Connection
Dim rs_xls As New ADODB.Recordset
On Error Resume Next
Dim rtn As Boolean
rtn = False

Err.Clear
conn_xls.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"

If Err.Number = 0 Then

rs_xls.Open "select * from [" & strSheetName_xls & "$]", conn_xls, adOpenForwardOnly, adLockOptimistic

low_name = rs_xls(0)
low_number = rs_xls(1)
low_info = rs_xls(2)

rs_xls.Close

If Err.Number = 0 Then
rtn = True
strRtn = ""
End If
End If
If Err.Number <> 0 Then
strRtn = "(" & Err.Number & ")" & Err.Description & " "
End If

conn_xls.Close
Set conn_xls = Nothing
Set crs_xls = Nothing
Err.Clear
TryConnExcel = rtn

End Function追问能说的详细点吗。。。小弟没看懂撒

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 asp 跳出本次循环进入下一次循环 C++中break和continue的跳出循环的表述区别? C#中使用ODP.NET登录sys账户sysdba权限提示ORA-1031: insufficient privileges,使用SQLPlus没有问题 汽车上的保险,赔偿自己和赔偿对方的分别是什么? 买车险主要买哪几种险啊,车损险是陪自己的车还是陪对方的车子啊陪多少钱,交强险是陪哪个车子的? 梦见穿着衣裤鞋袜在水里走,走着走着发觉鞋袜不见了赤脚在走 梦见下大雨光着脚趟水 梦见心爱的女人赤脚趟水 为啥不用水果刀切菜 是不是必须用茶刀?切菜的行吗?水果刀? 水果刀能切蔬菜吗? 谁有搜狐视频会员的,可以用一下吗!谢谢 谁有搜狐视频的会员借用一下,谢谢! 关于王熙凤情节(100字)高中考试用的 对方连续给我打几个微信电话,为什么有一个显示忙线未接听 法术和神通有什么区别? 佛的神通有那些 我微信又没视频又没接打电话,为啥别人和我视频会显示忙线末接听呢?我真冤啊,什么烂手机啊!!!_百度问一问 五个人每二个人通一次电话一共通了多少次电话 微信视频打通了对方手机显示我打通的视频忙线中未接听对方说他手机没响怎么回? C中的continue和break的区别是continue是跳出本次循环 break是跳出整个循环 dos批处理中如何跳出本次循环继续下次循环? 河北省职称评审问题 河北省建筑高级职称评审是由哪个部门负责 交割、交货是什么意思呢? t+d的交割制度是这样的? 期货最后交割卖方和买方价格为什么不一样 收货人 等同 货权人 么? 什么是实物交割和现金交割 杜兰特那么高为什么不打中锋或大前,反而打小前? 杜兰特的技术水平突出吗? 杜兰特的弱点是什么? 跟腱大伤的巨星,为何杜兰特仍在巅峰? NBA哪三位球员能克制杜兰特? 最强NBA杜兰特怎么玩 杜兰特玩法介绍 杜兰特打外线还是内线的? 杜兰特是联盟顶级球员,他的综合水平如何? 杜兰特是小前锋还是大前锋? 二弟三弟皆休息,杜兰特该如何带领篮网打球? 杜兰特的打法