求一个excel表格随机数宏~~

第一行A1到F1,产生六个随机数,范围在45~56之间;
第二行A2到B2,产生两个随机数,范围在30~45之间;
第三行A3到F3,产生六个随机数,范围在-10~+10之间;
第四行A4到F4,产生六个随机数,范围在0~50之间
一楼的看清了,要宏程序,不要公式的。我要一步到位的~~

第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
第3个回答  2010-05-07
A1到F1 =randbetween(45,56)
...
...
...本回答被提问者采纳
相似回答