|
本帖最后由 qxnljx 于 2014-2-13 21:44 编辑
香川群子 发表于 2014-2-13 09:16
如果在循环过程中的同一语句可能经常出错,出错后需要消除错误后继续,那么这样处理:
方法1:
我觉得两种方法应该都可以的吧,没测试过。
我有一代码段,也是某一句经常提示出错,然后弹窗(VBE)、挂起,点击VBE的“运行宏”后,又可以通过;如此反复,出错好像是随机的,没有什么规律,很是头疼。
代码如下:
'鼠标单击列表框释放操作,实现对选中项目的复制
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 And Flag_Func = 1 Then
Dim I1 As Integer
If UserForm1.ListBox1.ListCount <> 0 Then
I1 = 0
Do While I1 < UserForm1.ListBox1.ListCount
If UserForm1.ListBox1.Selected(I1) = True Then
TextBox2.Value = ListBox1.List(I1)
TextBox2.SelStart = 0
TextBox2.SelLength = TextBox2.TextLength
Sleep 10
TextBox2.Copy(经常出错语句)
UserForm1.ListBox1.Selected(I1) = False
Exit Sub
Else
I1 = I1 + 1
End If
Loop
End If
End If
End Sub
现增加出错处理代码如下:
'鼠标单击列表框释放操作,实现对选中项目的复制
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
On Error GoTo 100
If Button = 1 And Flag_Func = 1 Then
Dim I1 As Integer
If UserForm1.ListBox1.ListCount <> 0 Then
I1 = 0
Do While I1 < UserForm1.ListBox1.ListCount
If UserForm1.ListBox1.Selected(I1) = True Then
TextBox2.Value = ListBox1.List(I1)
TextBox2.SelStart = 0
TextBox2.SelLength = TextBox2.TextLength
Sleep 10
TextBox2.Copy
UserForm1.ListBox1.Selected(I1) = False
Exit Sub
Else
I1 = I1 + 1
End If
Loop
End If
End If
Exit Sub
100:
Resume
End Sub
好像出错的现象暂时消失了,但还待长时间使用测试......
|
|