vba数组随机打乱顺序
时间: 2024-08-12 07:09:49 浏览: 146
在VBA中,你可以使用`Rnd`函数和`Application.WorksheetFunction.RandBetween`函数结合,配合数组的索引来随机打乱数组的顺序。以下是一个简单的步骤:
1. 定义一个数组,例如`arr = Array("A", "B", "C", "D", "E")`。
2. 创建一个新的数组,用于存储随机排列后的结果。
3. 使用For循环遍历原数组,用随机数决定元素的新位置。
以下是一个示例代码片段:
```vba
Sub ShuffleArray()
Dim arr() As String ' 原始数组
arr = Array("A", "B", "C", "D", "E")
Dim newArr() As String ' 新数组
Dim i As Long, j As Long, temp As String
' 确保新数组与原数组长度相同
ReDim newArr(UBound(arr))
' 遍历原数组
For i = LBound(arr) To UBound(arr)
' 生成随机索引(范围从0到数组长度减一)
j = Int(Application.WorksheetFunction.RandBetween(0, UBound(arr)))
' 交换原数组和新数组的元素
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
Next i
' 新数组已随机排序,你可以打印或用其他方式处理
Debug.Print Join(arr, ", ")
End Sub
```
运行此宏后,`arr`数组就会被随机打乱顺序。
阅读全文