You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA中无法使用RandBetween()函数,提示“Sub or Function not defined”求助

RandBetween()函数在VBA中报错的原因及解决办法

问题原因

RandBetween是Excel的工作表函数,不属于VBA的内置函数集合。直接在VBA代码里调用它,系统会找不到对应的定义,所以弹出“Sub or Function not defined”错误。

解决办法

方法1:通过WorksheetFunction调用工作表函数

在VBA中可以借助WorksheetFunction对象来调用Excel的工作表函数,写法如下:

Dim randomNum As Integer
randomNum = WorksheetFunction.RandBetween(1, 100) ' 生成1到100之间的随机整数

注意:调用时要保证传入的下限值小于等于上限值,否则会触发参数错误。

方法2:用VBA内置函数实现随机整数生成

如果不想依赖工作表函数,可以用VBA自带的Rnd函数自行实现相同逻辑,公式为Int((上限 - 下限 + 1) * Rnd + 下限),示例代码:

Dim randomNum As Integer
randomNum = Int((100 - 1 + 1) * Rnd + 1) ' 同样生成1到100之间的随机整数

Rnd函数会生成一个0(包含)到1(不包含)之间的单精度随机数,通过上述计算可以将其转换为指定范围内的整数。

内容的提问来源于stack exchange,提问作者Daniele Scalco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:36:22