vb
Option Explicit
Sub ABC()
Dim A As Range
Set A = Worksheets("SHEET1").Range("A1:A100")
A.NumberFormat = "0"
Dim B As Range
Set B = Worksheets("SHEET1").Range("B1:B100")
B.NumberFormat = "0"
Dim C(1 To 100) As Long
Dim D(1 To 100) As Long
Dim E(1 To 100) As Long
Dim F(1 To 100) As Long
Dim G(1 To 100) As Long
Dim H(1 To 100) As Long
Dim I(1 To 100) As Long
Dim J(1 To 100) As Long
For I = 1 To 100
Do
C(I) = Int((5 - 2 + 1) * Rnd + 2)
Loop Until C(I) >= 2 And C(I) <= 5
Do
D(I) = 0
Loop Until D(I) >= 0
Do
E(I) = 0
Loop Until E(I) >= 0
Do
F(I) = 0
Loop Until F(I) >= 0
Do Until C(I) + D(I) + E(I) + F(I) = CLng(A.Cells(I, 1))
D(I) = D(I) + 1
E(I) = E(I) + 1
F(I) = F(I) + 1
Loop
If CLng(B.Cells(I, 1)) < 8 Then
G(I) = 6
H(I) = 8
I(I) = 0
J(I) = 0
ElseIf CLng(B.Cells(I, 1)) >= 8 And CLng(B.Cells(I, 1)) < 10 Then
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 0
Else
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 12
End If
If (C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) >= CLng(B.Cells(I, 1)) - 1 And _
(C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) <= CLng(B.Cells(I, 1)) + 1 Then
A.Cells(I, 3) = C(I) '将Long类型赋值给A列
A.Cells(I, 4) = D(I)
A.Cells(I, 5) = E(I)
A.Cells(I, 6) = F(I)
A.Cells(I, 7) = G(I)
A.Cells(I, 8) = H(I)
A.Cells(I, 9) = I(I)
A.Cells(I, 10) = J(I)
End If
Next
End Sub
Option Explicit
Sub ABC()
Dim A As Range
Set A = Worksheets("SHEET1").Range("A1:A100")
A.NumberFormat = "0"
Dim B As Range
Set B = Worksheets("SHEET1").Range("B1:B100")
B.NumberFormat = "0"
Dim C(1 To 100) As Long
Dim D(1 To 100) As Long
Dim E(1 To 100) As Long
Dim F(1 To 100) As Long
Dim G(1 To 100) As Long
Dim H(1 To 100) As Long
Dim I(1 To 100) As Long
Dim J(1 To 100) As Long
For I = 1 To 100
Do
C(I) = Int((5 - 2 + 1) * Rnd + 2)
Loop Until C(I) >= 2 And C(I) <= 5
Do
D(I) = 0
Loop Until D(I) >= 0
Do
E(I) = 0
Loop Until E(I) >= 0
Do
F(I) = 0
Loop Until F(I) >= 0
Do Until C(I) + D(I) + E(I) + F(I) = CLng(A.Cells(I, 1))
D(I) = D(I) + 1
E(I) = E(I) + 1
F(I) = F(I) + 1
Loop
If CLng(B.Cells(I, 1)) < 8 Then
G(I) = 6
H(I) = 8
I(I) = 0
J(I) = 0
ElseIf CLng(B.Cells(I, 1)) >= 8 And CLng(B.Cells(I, 1)) < 10 Then
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 0
Else
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 12
End If
If (C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) >= CLng(B.Cells(I, 1)) - 1 And _
(C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) <= CLng(B.Cells(I, 1)) + 1 Then
A.Cells(I, 3) = C(I) '将Long类型赋值给A列
A.Cells(I, 4) = D(I)
A.Cells(I, 5) = E(I)
A.Cells(I, 6) = F(I)
A.Cells(I, 7) = G(I)
A.Cells(I, 8) = H(I)
A.Cells(I, 9) = I(I)
A.Cells(I, 10) = J(I)
End If
Next
End Sub

菠萝蜜