' RemoveDuplicates'方法更改选择,而不仅仅是Range对象

时间:2015-12-16 20:17:55

标签: excel vba excel-vba range

我有一个Range对象,它包含来自选择的唯一列的数据。我想在此范围对象上使用RemoveDuplicates方法,以便只获取唯一值。我的问题是:RemoveDuplicates方法也改变了工作表上的选择。我只需要改变范围对象。这是我的代码:

Dim rngTst As Excel.Range
Set rngTst = Range(Cells(2, 1), Cells(65000, 1))
With rngTst
    .RemoveDuplicates 1, xlYes  'remove duplicated values
End With

1 个答案:

答案 0 :(得分:1)

我同意你的问题的所有评论。 Range对象并不适合您的任务。可以很容易地认为某些Excel函数可以简单地在宏中复制,但在VBA中通常有更好的方法来执行它...并且避免使用Activate / Select是识别VBA多功能性的第一步。

如果您只是需要遍历唯一值列表并以某种方式处理它们,那么Collection对象将是您的理想选择,因为每个键必须是唯一的,并且远离{{1对你来说会快得多。

这里有一些代码,显示从Worksheet对象获取值并从中创建唯一列表是多么简单。

Range