多次洗改现有列,任何行均无重复

时间:2019-05-21 21:03:50

标签: vba multiple-columns shuffle

我正在使用VBA

我在数组中有一列整数

我通过随机化器模块运行数组,并将其复制到第二列

我通过随机化器模块运行数组,并将其复制到第三列

我通过随机化器模块运行数组,并将其复制到第四列

我似乎无法克服的问题是同一行中的重复项

IE:

    2   13   27   14
    27  27   13   5
    14  5    2    13
    13  2    14   27
    5   14   5    2

*列长得多

我已经在网上搜索过,但每个人都专注于创建无重复的随机数。我发现改组,但似乎又是一维的。

'// get a random number from 1 to the last row of column 25
For N1 = 1 To LastRow
Again:
    Randomize Timer
    RNum = Int(Rnd * (LastRow - 1 + 1) + 1)


'// this is where the values in "NArray" get shuffled around
    Temp = NArray(N1)
    NArray(N1) = NArray(RNum)
    NArray(RNum) = Temp

    ws5.Cells(N1, Lp) = NArray(N1)

'// this looks for duplicate numbers in the row
    Select Case Lp
        Case 26:    a = ws5.Cells(N1, Lp).Value + 0
                b = ws5.Cells(N1, Lp - 1).Value + 0
                If a = b Then
                    GoTo Again
                End If
        Case 27:    a = ws5.Cells(N1, Lp).Value + 0
                b = ws5.Cells(N1, Lp - 2).Value + 0
                c = ws5.Cells(N1, Lp - 1).Value + 0
                If a = b Then
                    GoTo Again
                ElseIf a = c Then
                    GoTo Again
                End If

...
    '//将改组后的数组插入第26列的单元格中     对于N1 = 1到LastRow         ws5.Cells(N1,Lp)= NArray(N1)     下一个N1     下一个Lp

没有错误,但当比较从列到列的行中的单元格值时,它丢失重复的值,例如第2行第3列可能包含“ 14”,而第2行第4列包含“ 14”时不会循环返回并获得第4列的另一个值

0 个答案:

没有答案