生成一列中不存在的随机5位数字

时间:2016-06-09 08:13:40

标签: excel excel-vba random vba

我有一个5位数的列表。我需要随机生成一个不属于此列表的5位数字。我想通过点击按钮或简单地使用公式来实现这一点 例如:如果这是我的带有5位数字的Excel中的A列,

11111  
11113  
11115  

点击按钮,我想生成一个唯一的5位数字,不在此列中。 我正在使用此功能,但它只与第一个单元格匹配。当我点击我的按钮时,它给出了11110到11116之间的所有数字,除了11111.我需要它来检查完整列并返回一个唯一值。

Private Sub CommandButton1_Click()

Dim rw As Long
    For rw = 1 To 1
        Cells(rw, 2) = Int((11116 - 11110 + 1) * Rnd + 11110)
        Do Until Cells(rw, 2).Value <> Cells(rw, 1).Value
            Cells(rw, 2) = Int((11116 - 11110 + 1) * Rnd + 11110)
        Loop
    Next rw
End Sub

2 个答案:

答案 0 :(得分:2)

试试这个

Dim rw As Long
For rw = 1 To 1
    Rnd_Num = Int((11116 - 11110 + 1) * Rnd + 11110)
    Do Until Columns(1).Find(Rnd_Num) Is Nothing
        Rnd_Num = Int((11116 - 11110 + 1) * Rnd + 11110)
    Loop
    Cells(rw, 2) = Rnd_Num
Next rw

答案 1 :(得分:0)

.htaccess