提取独特物品&在新工作表中创建新列

时间:2017-07-28 09:11:25

标签: excel-vba dictionary collections unique copy-paste

我在" Sheet1"来自D11:D5000,带有多个代码/ ID&#s;这些包括字母,数字,hipns),我想提取所有独特的项目并在" Sheet2"从Cell B6开始。

我的尝试是编写高级过滤器VBA。但是我有几个列需要像这样完成工作,我想创建一个按钮或用户表单来使用多个范围的代码。

1 个答案:

答案 0 :(得分:0)

enter image description here

步骤1复制粘贴唯一

看看StackOverflow我发现这个优秀的answer可用于选择范围并将此范围内的唯一元素复制到另一个范围。

第2步用户交互

接下来,您还需要用户交互。用户需要指定一个范围,从中选择唯一元素以及粘贴唯一元素的范围或单元格。

我只是用谷歌搜索"从用户vba"获得范围。我结束了here

在下面的代码中我把两件事放在一起

Sub userinteraction()
Dim from_range As Range
Dim to_range As Range
Set from_range = Application.InputBox("Select range with ids", "Obtain Range Object", Type:=8)
Set to_range = Application.InputBox("Select a single cell from where to start pasting", "Obtain Range Object", Type:=8)
from_range.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=to_range, Unique:=True
End Sub

只有当用户只选择第二个范围的单个单元格时,代码才有效。如果您认为有必要,可能需要为此添加一些错误检查。此外,您可能希望拥有更好的UI。请参阅我的代码作为您进一步发展的起点。