|
发表于 2011-10-30 08:57
|
显示全部楼层
本楼为最佳答案
本帖最后由 zjdh 于 2011-10-30 09:28 编辑
不死循环的办法想出来了:- Sub TEST()
- Dim ARR, BRR(), I%, T%, R%, N%, M%
- Columns("C:D").ClearContents
- ARR = Sheets(2).Range("A2:C" & Sheets(2).Range("A65536").End(3).Row)
- N = UBound(ARR)
- For I = 1 To N Step 2
- T = T + 1
- 10 R = Int(Rnd() * N + 1)
- If ARR(R, 3) <> "" Then GoTo 10
- Cells(T * 3 + 2, 4) = ARR(R, 1)
- Cells(T * 3 + 2, 3) = ARR(R, 2)
- ARR(R, 3) = 1
- 20 R = Int(Rnd() * N + 1)
- If (ARR(R, 3) <> "" Or ARR(R, 2) = Cells(T * 3 + 2, 3)) Then
- M = M + 1
- If M = 100 Then M = 0: TEST '超过100次死循环重来
- GoTo 20
- End If
- M = 0
- Cells(T * 3 + 3, 4) = ARR(R, 1)
- Cells(T * 3 + 3, 3) = ARR(R, 2)
- ARR(R, 3) = 1
- Next
- End Sub
复制代码 |
评分
-
查看全部评分
|