Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 范围的随机值_Excel_Vba - Fatal编程技术网

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,是的,当然,你需要迭代设置每个单元格的范围,而不是一次性设置整个范围。第二个例子也会有同样的问题。我认为范围。公式是最好的选择。你是在说你的第一个例子还是第二个?如果是这样的话,我会改变它的位置吗。从一个范围到另一个范围。公式?感谢记录,我已经删除了上面评论中提到的错误答案。这就是我的意思:脸红:这就是我的意思:脸红: