随机打乱A列数据再重新输出

您所在的位置:网站首页 execl打乱数据 随机打乱A列数据再重新输出

随机打乱A列数据再重新输出

2023-03-27 10:25| 来源: 网络整理| 查看: 265

你可以在打乱数组的时候,使用一个Do While循环来确保没有重复值。具体来说,你可以在循环中使用一个Boolean变量来判断当前的值是否已经在数组中出现过。如果是,就继续生成随机数,直到生成一个没有出现过的值为止。以下是一个示例代码,可以实现这个功能:

Sub ShuffleColumnA() Dim lastRow As Long Dim i As Long Dim arr() As Variant Dim temp As Variant Dim j As Long Dim isDuplicate As Boolean

'获取最后一行 lastRow = Cells(Rows.Count, "A").End(xlUp).Row

'将a列的值存储到数组中 arr = Range("A1:A" & lastRow).Value

'循环遍历数组并随机打乱 For i = LBound(arr) To UBound(arr) isDuplicate = True Do While isDuplicate Randomize temp = arr(i, 1) j = Int(Rnd() * (UBound(arr) - LBound(arr) + 1) + LBound(arr)) If arr(j, 1) temp Then arr(i, 1) = arr(j, 1) arr(j, 1) = temp isDuplicate = False End If Loop Next i

'将打乱后的值写回a列 Range("A1:A" & lastRow).Value = arrEnd Sub

这个代码添加了一个Do While循环来确保没有重复值。在循环中,它首先将isDuplicate变量设置为True,然后生成一个随机数并检查它是否已经在数组中出现过。如果是,就继续生成随机数,直到生成一个没有出现过的值为止。然后,它将打乱后的值写回a列。

希望这可以帮到你!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3