|
发表于 2015-4-21 14:31
|
显示全部楼层
本楼为最佳答案
继续简化,不用子程序,一个主程序解决。- Sub main()
- tms = Timer
- arr = [c17:h37] '彩票数据数组
- brr = [j12:u15] '条件数组
- ReDim crr(1 To UBound(arr), 1 To UBound(brr, 2)) '结果数组
- For j = 1 To UBound(brr, 2)
- smax = 0
- For i = 1 To UBound(arr)
- xstr = "," & Join(Application.Index(arr, i), ",") & ","
- If InStr(xstr, "," & brr(1, j) & ",") > 0 Or InStr(xstr, "," & brr(2, j) & ",") > 0 _
- Or InStr(xstr, "," & brr(3, j) & ",") > 0 Then crr(i, j) = brr(4, j): s = s + 1 Else s = 0
- If s > smax Then smax = s
- Next
- Cells(5, j + 9) = smax & "次"
- Next
- [J17].Resize(UBound(crr), UBound(crr, 2)) = crr
- MsgBox Timer - tms & "秒"
- End Sub
复制代码 |
评分
-
查看全部评分
|