Excel 范围的随机值
我有以下代码:Excel 范围的随机值,excel,vba,Excel,Vba,我有以下代码: Low = 10 High = 25 R = Int((High - Low + 1) * Rnd() + Low) Sheets("ITEMS DATA").Range("D4:D39").Value = R 我希望声明的范围返回一个随机数,但它返回整个范围的相同随机数(D4:D39)。我想为指定的范围返回一个不同的随机数,但不知道如何返回。您创建了一个随机值,将其分配给R,然后将该值放入您的范围。有几种方法可以让你做你想做的事。我认为有充分的理由不直接将公式粘贴到单元格中
Low = 10
High = 25
R = Int((High - Low + 1) * Rnd() + Low)
Sheets("ITEMS DATA").Range("D4:D39").Value = R
我希望声明的范围返回一个随机数,但它返回整个范围的相同随机数(D4:D39)。我想为指定的范围返回一个不同的随机数,但不知道如何返回。您创建了一个随机值,将其分配给R,然后将该值放入您的范围。有几种方法可以让你做你想做的事。我认为有充分的理由不直接将公式粘贴到单元格中,因此:
Range("B1:B21").Formula = "=Int((A1 - A2)+1) * Rand() + A2"
假设A1和A2分别保持高位和低位,则会这样做
编辑以删除错误答案,此答案已被测试。您创建了一个随机值,将其分配给R,然后将该值放入您的范围。有几种方法可以让你做你想做的事。我认为有充分的理由不直接将公式粘贴到单元格中,因此:
Range("B1:B21").Formula = "=Int((A1 - A2)+1) * Rand() + A2"
假设A1和A2分别保持高位和低位,则会这样做
编辑以删除错误答案,此答案已经过测试。@Mike:
试试这个:
Low = 10
High = 25
For c = 4 To 39
R = Int((High - Low + 1) * Rnd() + Low)
Sheets("ITEMS DATA").Cells(c, 4).Value = R
Next
当然,您可以根据自己的喜好更改Cells()方法中的两个参数。@Mike:
试试这个:
Low = 10
High = 25
For c = 4 To 39
R = Int((High - Low + 1) * Rnd() + Low)
Sheets("ITEMS DATA").Cells(c, 4).Value = R
Next
当然,您可以根据自己的喜好更改Cells()方法中的两个参数。我尝试了您的第一个示例,它也做了同样的事情。我不能让你的第二个例子起作用。DOh,是的,当然,你需要迭代设置每个单元格的范围,而不是一次性设置整个范围。第二个例子也会有同样的问题。我认为范围。公式是最好的选择。你是在说你的第一个例子还是第二个?如果是这样的话,我会改变它的位置吗。从一个范围到另一个范围。公式?谢谢记录,我已经删除了上面评论中提到的错误答案。我尝试了你的第一个例子,它也做了同样的事情。我不能让你的第二个例子起作用。DOh,是的,当然,你需要迭代设置每个单元格的范围,而不是一次性设置整个范围。第二个例子也会有同样的问题。我认为范围。公式是最好的选择。你是在说你的第一个例子还是第二个?如果是这样的话,我会改变它的位置吗。从一个范围到另一个范围。公式?感谢记录,我已经删除了上面评论中提到的错误答案。这就是我的意思:脸红:这就是我的意思:脸红: