VBA 数组去重:使二维数组列元素唯一
VBA 数组去重:使二维数组列元素唯一
本文提供 VBA 代码示例,用于实现将 10 行 8 列的二维数组中每列元素去重,使每列仅包含唯一值。
代码示例:
Sub UniqueValues()
Dim arr(1 To 10, 1 To 8) As Integer ' 定义10行8列的整数数组
Dim i As Integer, j As Integer
' 填充数组
For i = 1 To 10
For j = 1 To 8
arr(i, j) = i * j
Next j
Next i
' 遍历每一列,检查元素是否唯一
For j = 1 To 8
Dim uniqueValues() As Integer ' 定义一个动态数组来存储唯一值
Dim count As Integer ' 记录唯一值的数量
count = 0
For i = 1 To 10
' 检查当前元素是否已经在uniqueValues中出现过
If UBound(Filter(uniqueValues, arr(i, j))) = -1 Then
' 如果没有出现过,则添加到uniqueValues中
ReDim Preserve uniqueValues(0 To count)
uniqueValues(count) = arr(i, j)
count = count + 1
Else
' 如果已经出现过,则将当前元素赋值为0
arr(i, j) = 0
End If
Next i
Next j
' 输出结果到Immediate窗口
For i = 1 To 10
For j = 1 To 8
Debug.Print arr(i, j),
Next j
Debug.Print
Next i
End Sub
代码说明:
- 定义一个 10 行 8 列的整数数组
arr,并填充一些随机值。 - 遍历每一列,使用
Filter函数检查当前元素是否已经出现在该列的uniqueValues数组中。 - 如果当前元素在
uniqueValues中不存在,则将其添加到uniqueValues中。 - 如果当前元素已存在,则将其赋值为 0。
- 最后,将修改后的数组输出到 Immediate 窗口。
使用说明:
该代码可以轻松修改以适应不同大小的数组,以及不同类型的数据。只需要修改数组的维度、数据类型和填充值即可。
希望本文能够帮助您理解如何使用 VBA 去重二维数组中的列元素。如果您有任何问题或建议,请随时留言。
原文地址: https://www.cveoy.top/t/topic/oIdi 著作权归作者所有。请勿转载和采集!