|
发表于 2015-9-6 22:39
|
显示全部楼层
本楼为最佳答案
清除的代码改成这样吧。
主要问题是因为先清空了后面的,再清空前面的,清空前面时,又因为事件的原因,导致后面的就变成0.
所以应该先清除前面再清除后面的,这样就好了。- Private Sub CommandButton1_Click()
- Dim ctl As Object, arr, a&, b&, bb&
- ReDim arr(1 To Me.Controls.Count, 1 To 3)
- For Each ctl In Me.Controls
- If TypeName(ctl) = "TextBox" Then
- a = a + 1
- If ctl.Name Like "*XS_*" Or ctl.Name Like "*JE_*" Then
- arr(a, 2) = ctl.Name
- ElseIf ctl.Name Like "*LR_*" Then
- arr(a, 3) = ctl.Name
- Else
- arr(a, 1) = ctl.Name
- End If
- End If
- Next
- For bb = 1 To 3
- For b = 1 To UBound(arr)
- If arr(b, bb) <> "" Then Controls(arr(b, bb)).Text = ""
- Next
- Next
- End Sub
复制代码 |
|