excel是办公尤其是处理数据的一个好帮手,他能给需要进行各类数据处理提供很强大的支持,这是我在工作中遇到的一个问题,是这样的,比如有两个单元格有固定值,而另外还有一个单元格需要取随机数,但又要求不要和那两个有固定值得单元格重复。如何取呢?随机函数?rand()和randbetween()都可以,但是一时间还真想不出满足要求的写法。于是我想用VBA编写也许更简单。于是就有了下文。
工具/原料
硬件:满足允许要求的电脑
软件:Office excel(我这里用的是Excel 2013版)
方法/步骤
这里为了方便验证,我们将随机数值尽量取小一点,如果你要大一些的随机数,可以修改程序。
设在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就可以快速运行该宏/程序了。
注意事项
新闻热点
疑难解答