我稍微停留在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
非常感谢任何帮助,
答案 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