|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
先下载学习,谢谢楼主分享。不知这些知识能否帮我把这段代码优化一下。该代码是用于小区田间试验,随机区组设计。要求每个重复内含有所有小区编码,行列内数字不能重复,也不能出现数字连锁,即要完全随机。
代码如下:
Sub 小区设计()
m = Range("b1") 'b1为重复数,3或4
n = Range("b2") 'b2为小区数,一般4-16之间
Range("3:" & Rows.Count).Clear
Range("c3:f18").Font.Size = 14
For i = 1 To n
iii:
Randomize
x = Int(Rnd * n) + 1
If Application.CountIf(Range("C:C"), x) = 0 Then
Cells(i + 2, 3) = x
Else
GoTo iii
End If
Next i
For j = 1 To n
jjj:
Randomize
y = Int(Rnd * n) + 1
If Application.CountIf(Range("D:D"), y) = 0 And Application.CountIf(Rows(j + 2), y) = 0 Then
Cells(j + 2, 4) = y
Else
GoTo jjj
End If
Next j
For k = 1 To n
kkk:
Randomize
Z = Int(Rnd * n) + 1
If Application.CountIf(Range("E:E"), Z) = 0 And Application.CountIf(Rows(k + 2), Z) = 0 Then
Cells(k + 2, 5) = Z
Else
GoTo kkk
End If
Next k
If m = 4 Then
For q = 1 To n
qqq:
Randomize
p = Int(Rnd * n) + 1
If Application.CountIf(Range("F:F"), p) = 0 And Application.CountIf(Rows(q + 2), p) = 0 Then
Cells(q + 2, 6) = p
Else
GoTo qqq
End If
Next q
End If
End Sub
各位老师帮看一下,谢谢!!! |
|