在excel中不包含一些单元格数值的随机数方法

2017-03-21

excel是办公尤其是处理数据的一个好帮手,他能给需要进行各类数据处理提供很强大的支持,这是我在工作中遇到的一个问题,是这样的,比如有两个单元格有固定值,而另外还有一个单元格需要取随机数,但又要求不要和那两个有固定值得单元格重复。如何取呢?随机函数?rand()和randbetween()都可以,但是一时间还真想不出满足要求的写法。于是我想用VBA编写也许更简单。于是就有了下文。

在excel中不包含一些单元格数值的随机数方法

这里为了方便验证,我们将随机数值尽量取小一点,如果你要大一些的随机数,可以修改程序。

设在D1单元格里取随机数(1——5之间),A1、B1单元格为有固定数值的单元格,当然数值范围也在1——5直接,否则毫无意义。

要编写VBA,首先就要打开VBA,打开VBA的方法不止一种,这里我们就使用最简单最快捷的方式,使用快捷键吧。按“Alt+F11”打开VBA窗口。VBA窗口右侧子窗口就是输入代码用的。

输入代码,如下:

Public Sub btsj()Dim sjd As Range Set sjd = Range("D1")line1: sjd.ClearContents Randomize sjd = Int(Rnd * 5 + 1) If sjd = Range("A1") Or sjd = Range("B1") ThenGoTo line1End IfEnd Sub

完成后就可以试运行并保存,运行是那个小三角,好像播放图标一样的,保存的图标不用多说。点击小三角图标后可能会弹出一个窗口,再点击运行即可。

为了快速验证,我们可以给宏加上快捷键,如图所示,这里我们给它设置快捷键“Ctrl+s”,现在我们只要按Ctrl+s就可以快速运行该宏/程序了。

注意事项

编写VBA程序的时候要细心,如果有错误提示,需要理性分析,耐心检查。

以上就是在excel中不包含一些单元格数值的随机数方法介绍,大家学会了吗?希望能对大家有所帮助!

更多相关阅读

最新发布的文章