我正在使用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列的另一个值