|
Sub 分配()
Range("l2:n62") = ""
Dim d As New Dictionary
Dim rg As Range
Dim x, K1, K2, K3, z1, z2, z3, k
For x = 2 To 61
z1 = (-[l64] / (62 - x)) * 2
z2 = (-[m64] / (62 - x)) * 2
z3 = (-[m64] / (62 - x)) * 2
k = 0
100:
k = k + 1
If k > 500 Then
K1 = Round(Rnd() * ((Cells(x, "B") + Cells(x, "J")) - Cells(x, "H")) / Range("C65") * 3, 4)
Else
K1 = Round(Rnd() * z1, 4)
End If
If d.Exists(K1) Or K1 = 0 Then GoTo 100
Cells(x, "l") = K1
200:
If k > 500 Then
K2 = Round(Rnd() * ((Cells(x, "B") + Cells(x, "J")) - Cells(x, "H")) / Range("C65") * 3, 4)
Else
K2 = Round(Rnd() * z2, 4)
End If
If d.Exists(K2) Or K2 = 0 Then GoTo 200
Cells(x, "m") = K2
300:
If k > 500 Then
K3 = Round(Rnd() * ((Cells(x, "B") + Cells(x, "J")) - Cells(x, "H")) / Range("C65") * 3, 4)
Else
K3 = Round(Rnd() * z3, 4)
End If
If d.Exists(K3) Or K3 = 0 Then GoTo 300
Cells(x, "n") = K3
If Cells(x, "k") < 0 Or Cells(x, "k") > 1000000 Then GoTo 100
Next x
Range("l62") = -[l64]
Range("M62") = -[m64]
Range("N62") = -[N64]
End Sub
|
|