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

代码说明:

  1. 定义一个 10 行 8 列的整数数组 arr,并填充一些随机值。
  2. 遍历每一列,使用 Filter 函数检查当前元素是否已经出现在该列的 uniqueValues 数组中。
  3. 如果当前元素在 uniqueValues 中不存在,则将其添加到 uniqueValues 中。
  4. 如果当前元素已存在,则将其赋值为 0。
  5. 最后,将修改后的数组输出到 Immediate 窗口。

使用说明:

该代码可以轻松修改以适应不同大小的数组,以及不同类型的数据。只需要修改数组的维度、数据类型和填充值即可。

希望本文能够帮助您理解如何使用 VBA 去重二维数组中的列元素。如果您有任何问题或建议,请随时留言。

VBA 数组去重:使二维数组列元素唯一

原文地址: https://www.cveoy.top/t/topic/oIdi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录