列范围内唯一值的数组

0 arrays excel vba unique

尝试找出代码来创建列中所有唯一值的数组。

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

非常感谢任何建议

更新:

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

Sub uniq()
    With Application.WorksheetFunction
        divisionNames = .Unique(Range("C3:C30"))
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

Gar*_*ent 5

使用Excel 365

Sub uniq()
    With Application.WorksheetFunction
        divisionNames = .Unique(Range("C3:C30"))
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑#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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述