从一个启​​动的ActiveCell,如何随机生成周围的单元格,并进一步从特定的值中随机生成

时间:2017-04-18 20:58:10

标签: excel vba random cells

我正在尝试让单元格在视觉上代表一组随机数字,这些数字能够基于while循环向外扩展(让我们从小开始,只需将其设为5x5网格,然后我可以根据需要进行更新)。 / p>

示例:如果我的中心活动单元格是数字= rand介于(1,10)之间,其中1-9的答案在其周围的相邻单元格中放置1-10个随机数。但是,如果值为" 10" ,我希望此单元格周围的单元格已填充尚未,以使公式位于旁边他们是=兰德(11,20)。我似乎无法弄清楚如何做到这一点,而不会覆盖所有内容而只是一组数字。

这个问题的答案也可用于非随机使用(例如,如果有人想要展示如果在一个空间中有一把椅子,那么他们知道桌子或垃圾桶等会在旁边的空间中它)

感谢您查看我的问题!

完成后应如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

在调查了一段时间之后,我想我会分享最终为我工作的赎罪:

    Dim k As Single 'Total Move Count
    Dim x As Single 'Starting point of spiral
    Dim bool As Boolean 'Boolean for direction change
    bool = True 'starts boolean as true
    k = 1 'starts count at 1
    x = 0 ' starts position as 0
    Dim i As Single
    i = 1
    Dim j As Single
    j = 1

    Do While x <= 10

        For n = 0 To k
            If bool = True Then
            ActiveCell.Value = "=randbetween(0,100)"
            ActiveCell.Offset(0, 1).Select 'Move Right
            i = i + 1
            Else
            ActiveCell.Value = "=randbetween(100,200)"
            ActiveCell.Offset(0, -1).Select 'Move Left
            i = i - 1
            End If
        Next n

         For n = 0 To k
            If bool = True Then
            ActiveCell.Value = "=randbetween(200,300)"
            ActiveCell.Offset(1, 0).Select 'Down
            i = i + 1
            ActiveCell.Value = "=randbetween(300,400)"
            ActiveCell.Offset(-1, 0).Select 'Up
            i = i - 1
            End If
         Next n

    k = k + 1
    bool = Not bool
    'MsgBox bool
    x = x + 1
    Loop

我希望这有助于其他人!