首页 > 解决方案 > 列范围内的唯一值数组

问题描述

试图找出代码来制作一列中所有唯一值的数组。

所以就像从 C3:C30 说的那样,我想要一个名为 divisionNames 的数组,该数组包含该范围内的所有唯一值。我打算稍后在代码中使用该数组。试图找出一种极简的方法,这样我就不会在宏中添加 60 多行代码。

将非常感谢任何建议

更新:

下面加里学生的回答解决了我需要的问题,但我非常感谢大家提供的帮助。谢谢你。另外作为旁注,我现在意识到我应该补充说我正在使用 Office 365。老实说,我没有意识到它有很大的不同,但我会记住这一点以供将来参考,再次感谢大家的帮助

Sub uniq()
    With Application.WorksheetFunction
        divisionNames = .Unique(Range("C3:C30"))
    End With
End Sub

标签: arraysexcelvbaunique

解决方案


使用Excel 365

Sub uniq()
    With Application.WorksheetFunction
        divisionNames = .Unique(Range("C3:C30"))
    End With
End Sub

编辑#1:

此版本将对结果进行排序并将数据放在D列中:

Sub uniq()
    With Application.WorksheetFunction
        divisionNames = .Unique(Range("C3:C30"))
        divisionNames = .Sort(divisionNames)
    End With
    
    u = UBound(divisionNames, 1)
    Range("D3:D" & 3 + u - 1).Value = divisionNames
    
End Sub

在此处输入图像描述


推荐阅读