区域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。
继续完成其他行的比较。
测试时我是用randbetween(1,100)在两个表单中生成随机数,然后把随机公式粘贴成数字。
以下是以前网友帮写的,很好用。当时要求区域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
区域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。
继续完成其他行的比较。
测试时我是用randbetween(1,100)在两个表单中生成随机数,然后把随机公式粘贴成数字。
以下是以前网友帮写的,很好用。当时要求区域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
解决方案 »
- 有关Windows Media Player 控件自动播放问题,急,在线等
- 为何mshflexgrid绑定ado记录集后,数值型字段都是左对齐呢。数值如何靠右对齐呢?
- 如何获得文本框末尾的变化内容
- VB6.0与SQL2008实时错误424要求对象
- 在线等待*****ListBox***如何实现选中列表框一选项,该项便上移,即与上一项交换位置?
- 请问一下,从form2中复制一个控件粘贴到form1上,但是在form1上看不见这个控件,如何能让他变为可见
- 怎么样实现复合条件的查询!
- 急救!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
- 如何编写232接口(串口)的数据发收程序(送上200分)急急急急!
- VB中实现输入的内容与数据库中对应记录智能跟踪
- 请教C# 代码转成VB6代码
- mouse_event函数被游戏检测到了 有什么别的办法?
Sub t1()
Dim a1, a2, i%, j%, s$, k&
a1 = Sheets("1").Range("A1:F240")
a2 = Sheets("2").Range("A1:F240")
For i = 1 To UBound(a1)
s = "," & Join(Application.Index(a1, i), ",") & ","
k = 0
For j = 1 To UBound(a1, 2)
If InStr(1, s, "," & a2(i, j) & ",") > 0 Then k = k + 1
Next
Sheets("1").Range("G" & i) = k
Next
End Sub