将唯一列表复制到任意位置

时间:2015-10-30 17:59:52

标签: excel vba

这里有很多解决方案非常接近,但我能找到的所有解决方案都有一个独特的列表,可以预先设定位置。

示例数据

动物







鸭子

我希望能够使用标准Ctrl + C获取此列表(包括列标题),转到另一个位置,运行宏并将其粘贴到所需范围内的唯一列表,以便我得到:

动物



尝试使用宏录制器并解析相关部分但没有骰子,并且代码生成特定于单元格的引用,我太过于讨论如何替换。我希望它能够动态工作,无论任何工作表中的位置如何,例如“粘贴唯一”命令,我已经选择了一些东西。

为了进一步澄清,如果我可以将已经不重复的列表粘贴到当前位置,那将会很棒。基本的想法是从400行数据中获取一列,将其值的唯一列表粘贴到另一个位置,然后能够使用该列表开始创建汇总表(计数,总和等)。

我也在使用Excel 2010。

在下面添加宏录制代码:

Sub Macro6()  
' Macro6 Macro  
    Range(Selection, Selection.End(xlDown)).Select  
    Selection.Copy  
    Range("A2").Select  
    Selection.End(xlDown).Select  
    Range("A438").Select  
    ActiveSheet.Paste  
    Application.CutCopyMode = False  
    ActiveSheet.Range("$A$438:$A$866").RemoveDuplicates Columns:=1, Header:= _  
        xlYes  
End Sub  

2 个答案:

答案 0 :(得分:1)

这是一个VBA例程。

将例程放在标准代码模块中。

Sub Crazy()
    With Selection.CurrentRegion
        If .Count > 1 Then
            .RemoveDuplicates 1
        End If
    End With
End Sub

现在...

复制您的动物列表并将其粘贴到您喜欢的任何位置。

选择列表中的至少一个单元格。

从宏对话框(Control-F8)运行Crazy过程。

就是这样。

答案 1 :(得分:0)

  

我希望能够使用a获取此列表(包括列标题)   标准Ctrl + C,转到另一个位置,运行宏并拥有它   将唯一列表粘贴到所需范围

我想这个特殊的粘贴宏应该做你想要的,假设数据在一列上:

Sub PasteAndRemoveDuplicates()
    Selection.Parent.Paste
    Selection.RemoveDuplicates 1
End Sub