VBA WorksheetFunction动态randbetween

时间:2013-12-07 20:57:07

标签: excel vba

希望一切顺利。

我稍微停留在Excel中名为randbetween的VBA函数中。

问题的本质是我需要根据一堆其他数字创建随机数,总共约有50,000个其他数字。

我生成的随机数必须介于1和X之间.X是D1列中的其他数字:D50,000。

例如:如果单元格D1包含数字5,那么我需要在单元格A1中创建1到5之间的随机数。然后继续前进到D2,D3,D4等,并相应地为每个创建随机数,A2,A3,A4 ......等。

我尝试使用以下内容,但不幸的是偏移部分不起作用。我想动态地处理每个单元格。

代码如下:

r = WorksheetFunction.RandBetween(1, Offset(A1, n, 9))
'where n = 2

非常感谢任何帮助,

1 个答案:

答案 0 :(得分:1)

您对OFFSET的使用是错误的语法。你需要像

这样的东西
Range("A1").Offset(RowOffset, ColumnOffset)

但是,有一个更好的方法来实现您的既定目标。使用Range.FormulaR1C1

Sub Demo()
    Dim rng As Range

    ' Define range
    Set rng = [A1:A50000]

    ' Put formulas into the range
    rng.FormulaR1C1 = "=RANDBETWEEN(1,RC4)"

    'optional, replace formulas with values
    rng.Value = rng.Value

End Sub