|
区域1: Sheets("1").Range("A1:F240"),每行6个数(互不相同),240行
区域2: Sheets("2").Range("A1:F240"),每行6个数(互不相同),240行
要把区域1与区域2对应的行作比较,比如,区域1的第1行的第1个数、第2个...第6个,分别与区域2的第1行所有数据比较,共6*6=36次,如果存在至少4个相等的情况,在Sheets("1").Range("G1")中返回1,否则为0。
然后再用区域1的第2行与区域2的第2行进行比较,返回值在G2。
继续完成其他行的比较。
以下是以前网友帮写的,很好用。当时要求区域1中有任意一个数等于区域2中的任意一个数,就返回为1。而现在的要求是区域1中至少有4个数与区域2中的6个中的4个相等才能返回1:
Sub t1()
Dim a1, a2, i%, j%, s$
a1 = Sheets("1").Range("A1:F240")
a2 = Sheets("2").Range("A1:F240")
For i = 1 To UBound(a1)
s = "," & Join(Application.Index(a1, i), ",") & ","
For j = 1 To UBound(a1, 2)
If InStr(1, s, "," & a2(i, j) & ",") > 0 Then
Sheets("1").Range("G" & i) = 1
Exit For
End If
Next
If j = 6 Then Sheets("1").Range("G" & i) = 0
Next
End Sub |
|