Dim coll As Collection
Function CheckExists(t As TextBox) As Boolean
On Error Resume Next
CheckExists = False
Dim obj As TextBox
Set obj = coll.Item(t.Text)
If Err.Number <> 0 Then
coll.Add t, t.Text
Else
obj.ForeColor = vbRed '已经存在的也变红色
CheckExists = True
End If
End Function
Private Sub Command1_Click()
Dim t As TextBox
Set coll = New Collection
For i = 0 To Me.Controls.Count - 1
If TypeName(Me.Controls(i)) = "TextBox" Then
Set t = Me.Controls(i)
t.ForeColor = vbBlack
' 判断是否有重复,重复自动变红色
If CheckExists(t) Then
t.ForeColor = vbRed
MsgBox "有重复"
t.SetFocus
End If
End If
Next
End Sub
另建一个字符串数组,插入数组中的元素要求从小到大排序。
每输入一个text,用二分法在上面的有序数组中查找,找到就提示 “重复” 要求重新输入;没找到就插入二分法最后定位的位置。
使用控件数组来做
就可以了
使用控件数组来做
就可以了
使用控件数组来做
就可以了