第1个回答 2010-05-08
用我的这个函数吧,代码如下:
Function MyRandbetween(A As Single, B As Single, Optional NeedInt = 1) As Single
If NeedInt = 0 Then MyRandbetween = ((B - A) * Rnd()) + A
If NeedInt = 1 Then MyRandbetween = Int(((B - A + 1) * Rnd()) + A)
End Function
只需要在需要的单元格中输入 =MyRandbetween(数值1,数值2) 即可得到 数值1,数值2 之间的一个随机整数;
如果需要的不是整数而需要小数呢,则输入 =MyRandbetween(数值1,数值2,0)
所以,对于楼主的问题,比如:第一行A1到F1,产生六个随机数,范围在45~56之间;
那就在 A1~F1六个单元格中都输入 =MyRandbetween(45,56),即可
GoodLuck!
--------------------------
哦,楼主要一步到位!!
那就这样:保留上面那个自定义函数不动,再加一个主程序,只需执行这个主程序即可完成对指定单元格的填充。主程序代码如下(这里只填写整数,如果需要小数,可参照上面自定义函数的用法增加参数即可):
Sub FillRandNum()
Dim m As Range
For Each m In Range("A1:F1")
m.Value = MyRandBetween(45, 56)
Next m
For Each m In Range("A2:B2")
m.Value = MyRandBetween(30, 45)
Next m
For Each m In Range("A3:F3")
m.Value = MyRandBetween(-10, 10)
Next m
For Each m In Range("A4:F4")
m.Value = MyRandBetween(0, 50)
Next m
End Sub
GoodLuck!!
第2个回答 2010-05-21
按你的要求,宏代码如下:
Sub test()
Dim i As Integer
For i = 1 To 6
Cells(1, i) = Int(Rnd() * 12 + 45)
Next i
For i = 1 To 2
Cells(2, i) = Int(Rnd() * 16 + 30)
Next i
For i = 1 To 6
Cells(3, i) = Int(Rnd() * 21 - 10)
Next i
For i = 1 To 6
Cells(4, i) = Int(Rnd() * 51)
Next i
End Sub