有存放抽取用数据的数据表,还有用于制作数据的当前表
此程序先用Select找到判断条件,之后进入符合判断条件的Case,
然后在该Case内设置抽取数据用的数据表的值的范围的行号,之后生成范围内随机数(随即行号),
再用随机数(行号)从数据表中抽出值
Sub 根据条件随机设置数据()
Dim iMax As Double
Dim iMin As Double
col = "L"
For i = 1 To 1000
Select Case Cells(i, "K")
Case "条件1"
iMax = 4
iMin = 2
ret = Format(Fix((iMax - iMin + 1) * Rnd + iMin), "0")
Cells(i, col) = ThisWorkbook.Worksheets("数据表名").Cells(ret, "A")
Case "条件2"
iMax = 5
iMin = 2
ret = Format(Fix((iMax - iMin + 1) * Rnd + iMin), "0")
Cells(i, col) = ThisWorkbook.Worksheets("数据表名").Cells(ret, "B")
Case "条件3"
iMax = 41
iMin = 2
ret = Format(Fix((iMax - iMin + 1) * Rnd + iMin), "0")
Cells(i, col) = ThisWorkbook.Worksheets("数据表名").Cells(ret, "C")
End Select
Next i
End Sub
这种做法的一个问题是,有多少个条件,就需要在数据表中放多少列