我有一个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
答案 0 :(得分:1)
我同意你的问题的所有评论。 Range
对象并不适合您的任务。可以很容易地认为某些Excel函数可以简单地在宏中复制,但在VBA中通常有更好的方法来执行它...并且避免使用Activate
/ Select
是识别VBA多功能性的第一步。
如果您只是需要遍历唯一值列表并以某种方式处理它们,那么Collection
对象将是您的理想选择,因为每个键必须是唯一的,并且远离{{1对你来说会快得多。
这里有一些代码,显示从Worksheet
对象获取值并从中创建唯一列表是多么简单。
Range