如何使用' CopyToRange'从列中转置唯一的值列表?

时间:2016-03-30 17:01:33

标签: excel vba excel-vba

经过一些研究,我找到了使用“特殊情况”进行转置的方法。但是,我不认为这对我有用,因为我使用复制范围来获取唯一值。

以下代码适用于将唯一值复制到工作簿:

Sub GetComponents()

ActiveSheet.Range("G2:G65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ThisWorkbook.Worksheets("Sheet2").Range("A1"), Unique:=True

End Sub

然而,当我试图转置它失败时

Sub GetComponents()

ActiveSheet.Range("G2:G65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ThisWorkbook.Worksheets("Sheet2").Range("A1"), Unique:=True, Transpose:=True

End Sub

有没有办法获得' CopyToRange'转置?如果没有,我可以获得' PasteSpecial'过滤唯一值?

提前致谢

1 个答案:

答案 0 :(得分:1)

我认为唯一的方法是分两步完成:

Sub GetComponents()

ActiveSheet.Range("G2:G65536").AdvancedFilter Action:=xlFilterCopy, _ 
     CopyToRange:=ThisWorkbook.Worksheets("Sheet2").Range("A1"), Unique:=True

With ThisWorkbook.Worksheets("Sheet2")
    .Range(.Range("A1"), .Range("A1").End(xlDown)).Copy
    .Range("B1").PasteSpecial xlPasteValues, Transpose:=True
    .Columns("A").EntireColumn.Delete
End With

End Sub