【发布时间】:2012-05-09 22:18:56
【问题描述】:
我在 Sheet1 的 A 列中有一个未排序的名称列表。其中许多名称在列表中出现多次。
在 Sheet2 列 A 我想要一个按字母顺序排序的名称列表,没有重复值。
使用 VBA 实现此目的的最佳方法是什么?
目前我看到的方法包括:
- 以 CStr(name) 为键创建一个集合,循环遍历范围并尝试添加每个名称;如果有错误它不是唯一的,忽略它,否则将范围扩大 1 个单元格并添加名称
- 与 (1) 相同,但忽略错误。循环完成后,集合中只有唯一值:然后将整个集合添加到范围中
- 在范围上使用匹配工作表功能:如果不匹配,则将范围扩大一个单元格并添加名称
- 也许对数据选项卡上的“删除重复项”按钮进行了一些模拟? (还没有研究过)
【问题讨论】:
-
我会选择选项 4。1) 录制宏 2) 将 Col A 复制到第二张表 3) 如果您使用 Excel 2007,请选择 Col A 并按下数据选项卡下的删除重复项按钮4) 对数据进行排序 :) 试一试,如果遇到困难,请回复 :)
-
+1 表示悉达多的回答。这应该很容易。
-
这样的问题已经被问过很多次了...看看以前的答案 (here for example),尝试一下,看看它是否有效,如有任何问题,请与我们联系。 This 和 this 对您也很有用。