你的所有TextBox应该定义为控件数组: Function isRep(N As Long)As Boolean 'TextBox控件数组的下标从0至N For i=0 To N-1 For j=i+1 to N If Txt(i).Text=Txt(j) Then isRep=True:Exit Function End If Next Next isRep=False End Function
set dic=createobject("scripting.dictionary") dic.add(text1.text,"1") if(dic.exist(text2.text)) then debug.print "有重复数据" end if
把TextBox设为控件数组。再比较就容易了。
在Change事件中比较每一个文本框的内容即可
Private Sub Command1_Click() For i = 1 To 3 '3是文本框总数N,文本框名中的数字顺序增长,例如text1,text2,text3,... For j = i + 1 To 3 If Me.Controls("text" & i).Text = Me.Controls("text" & j).Text Then MsgBox "Text" & i & "与" & "Text" & j & "的值相同" End If Next Next End Sub
Private Sub Command1_Click() 'textbox控件名可以随意 Dim obj1 As Object, obj2() As Object, i As Integer Dim j As Integer, k As Integer
For Each obj1 In Controls If TypeOf obj1 Is TextBox Then ReDim Preserve obj2(i) Set obj2(i) = obj1 i = i + 1 End If Next
For j = 0 To i - 1 For k = j + 1 To i - 1 If obj2(j) = obj2(k) Then MsgBox obj2(j).Name & "与" & obj2(k).Name & "的值相同" End If Next NextEnd Sub
Function isRep(N As Long)As Boolean 'TextBox控件数组的下标从0至N
For i=0 To N-1
For j=i+1 to N
If Txt(i).Text=Txt(j) Then
isRep=True:Exit Function
End If
Next
Next
isRep=False
End Function
dic.add(text1.text,"1")
if(dic.exist(text2.text)) then
debug.print "有重复数据"
end if
Private Sub Command1_Click()
For i = 1 To 3 '3是文本框总数N,文本框名中的数字顺序增长,例如text1,text2,text3,...
For j = i + 1 To 3
If Me.Controls("text" & i).Text = Me.Controls("text" & j).Text Then
MsgBox "Text" & i & "与" & "Text" & j & "的值相同"
End If
Next
Next
End Sub
Private Sub Command1_Click()
'textbox控件名可以随意
Dim obj1 As Object, obj2() As Object, i As Integer
Dim j As Integer, k As Integer
For Each obj1 In Controls
If TypeOf obj1 Is TextBox Then
ReDim Preserve obj2(i)
Set obj2(i) = obj1
i = i + 1
End If
Next
For j = 0 To i - 1
For k = j + 1 To i - 1
If obj2(j) = obj2(k) Then
MsgBox obj2(j).Name & "与" & obj2(k).Name & "的值相同"
End If
Next
NextEnd Sub