作业帮 > 综合 > 作业

帮忙VBA编程,数据如下

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/25 13:26:26
帮忙VBA编程,数据如下
数字 权值
1 5%
2 15%
3 30%
4 50%
随机产生一个0到1的小数
if随机数0.05 && 随机数
Sub 随机()
a = Rnd(1)
If a >= 0 Then b = 1
If a >= 0.05 Then b = 2
If a >= 0.2 Then b = 3
If a >= 0.5 Then b = 4
MsgBox (b)
End Sub
再问: 嗯,能不能不宜msgbox显示,比如我要产生100个这样的随机数,放在A2-A101,另外再产生一组50个的随机数,显示在A102-A151这组是这样的: 数字 权值 1 15% 2 20% 3 30% 4 35%
再答: 可以啊。你等等。执行条件是选择单元格改变时运行,这个可以改成一个按钮,或者模块你执行宏。Private Sub Worksheet_SelectionChange(ByVal Target As Range)改成
Sub 随机(),这样就行了和刚才一样的,运行宏,而不是自动执行。我在右边还给你加了1-100 和101到150的 1 2 3 4的个数统计Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 1 To 100
a = Rnd(1)
If a >= 0 Then Cells(i, 1).Value = 1
If a >= 0.05 Then Cells(i, 1).Value = 2
If a >= 0.2 Then Cells(i, 1).Value = 3
If a >= 0.5 Then Cells(i, 1).Value = 4
Next i
For k = 101 To 150
a = Rnd(1)
If a >= 0 Then Cells(k, 1).Value = 1
If a >= 0.15 Then Cells(k, 1).Value = 2
If a >= 0.35 Then Cells(k, 1).Value = 3
If a >= 0.65 Then Cells(k, 1).Value = 4
Next k
End Sub