三个vba生成不重复随机整数的案例

    xiaoxiao2025-12-07  4

    内容提要:文章提供三个vba代码生成不重复随机数的案例供学习。对Excel感兴趣的朋友可加 Excel学习交流群:284029260(www.itblw.com)

    vba不重复随机数案例一: 下面的代码,将在A1:A5000单元格产生1-5000的不重复随机整数。 Private Sub vba不重复随机数()     Dim Arr1(1 To 5000) As Boolean     Dim Arr2(1 To 5000, 0) As Integer     t = Timer     [A:A] = Empty     For i = 1 To 5000         num = Int(5000 * Rnd + 1)         Do While Arr1(num)             num = Int(5000 * Rnd + 1)         Loop         Arr1(num) = True         Arr2(i, 0) = num     Next i     [A1:A5000] = Arr2 End Sub

    vba不重复随机数案例二: 在A1:A100中产生1-100的不重复随机整数,代码如下: Sub vba不重复随机数()   Dim TempArr1(99) As Integer, TempArr2(0 To 99, 1 To 1) As Integer   Dim RndNumber As Integer, i As Integer   Randomize (Timer)           '初始化随机数生成器   For i = 0 To 99            '产生包含1-100的不重复的随机数列       TempArr1(i) = i   Next i   For i = 99 To 0 Step -1      RndNumber = Int(i * Rnd)      TempArr2(99 - i, 1) = TempArr1(RndNumber) + 1      TempArr1(RndNumber) = TempArr1(i)   Next i   '在A1:A100中输入这些数字   Range("a1:a100").Value = TempArr2 End Sub

    vba不重复随机数案例三: 在A1:A10单元格产生10个0-100的随机整数,以下是代码: Sub vba不重复随机数()    Dim i As Long     i = 100     Dim num As Long     ReDim arr(i) As Long     ReDim Arr2(i, 0) As Long     Dim x As Long     For x = 0 To i         arr(x) = x     Next x     For x = 0 To i         num = Int(Rnd() * (i - x))         Arr2(x, 0) = arr(num)         arr(num) = arr(i - x)     Next x     Range("A1:A10") = Arr2 End Sub

    转载请注明原文地址: https://ju.6miu.com/read-1304696.html
    最新回复(0)