我在" Sheet1"来自D11:D5000,带有多个代码/ ID&#s;这些包括字母,数字,hipns),我想提取所有独特的项目并在" Sheet2"从Cell B6开始。
我的尝试是编写高级过滤器VBA。但是我有几个列需要像这样完成工作,我想创建一个按钮或用户表单来使用多个范围的代码。
答案 0 :(得分:0)
看看StackOverflow我发现这个优秀的answer可用于选择范围并将此范围内的唯一元素复制到另一个范围。
接下来,您还需要用户交互。用户需要指定一个范围,从中选择唯一元素以及粘贴唯一元素的范围或单元格。
我只是用谷歌搜索"从用户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。请参阅我的代码作为您进一步发展的起点。