如何用VBA随机为Excel单元格A2赋值BA或CF?
Excel VBA实现随机为单元格A2赋值BA或CF
你可以利用VBA的Rnd()函数生成随机数,结合条件判断或者Choose()函数来实现随机二选一的赋值,以下是两种可行的写法:
方法一:条件判断实现
Dim randomVal As Double randomVal = Rnd() ' 生成0到1之间的随机数(不含1) If randomVal <= 0.5 Then Worksheets("Sheet1").Range("A2").Value = "BA" Else Worksheets("Sheet1").Range("A2").Value = "CF" End If
Rnd()会生成0到0.999...之间的随机数,以0.5为分界,小于等于0.5时赋值BA,否则赋值CF,两者概率接近50%。
方法二:Choose函数简化代码
' Int(Rnd*2)生成0或1,加1后变为1或2,对应Choose列表里的第1、第2个值 Worksheets("Sheet1").Range("A2").Value = Choose(Int(Rnd * 2) + 1, "BA", "CF")
这种写法更简洁,Choose()函数会根据第一个参数的数值,返回后续列表中对应位置的内容,同样能实现随机二选一。
如果需要每次运行都得到不同的随机序列,避免重复结果,可以在代码开头加上Randomize语句:
Randomize Worksheets("Sheet1").Range("A2").Value = Choose(Int(Rnd * 2) + 1, "BA", "CF")
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

