我正在寻找具有完全相同功能但保持不变的 RandBetween 替代方案。我正在寻找一个可以做到这一点的宏,我想我找到了一个……
Function RndInt(lowerbound As Integer, upperbound As Integer) As Integer
Static AlreadyRandomized As Boolean
If Not AlreadyRandomized Then
Randomize
AlreadyRandomized = True
End If
RndInt = Int(lowerbound + Rnd() * (upperbound - lowerbound + 1))
End Function
经过测试后,问题似乎在于该函数没有在单元格之间进行选择,而是仅采用上界和下界单元格的值,并且不能像 RandBetween 函数那样运行,在该函数中您可以选择一个上界和下界单元格,它将从这两个单元格之间的所有单元格中进行选择 :/
答案1
您发布的 VBA 完全按照您描述的方式进行操作(RANDBETWEEN
从数字范围中选择,而不是从单元格范围中选择),也许您应该以不同的方式使用它:
=INDEX(A1:X1,RndInt(1,COLUMNS(A1:X1))
其中 A1 和 X1 是范围内的第一个和最后一个单元格