VBA Excel .RemoveDuplicates和.Range语法

时间:2016-06-13 20:10:28

标签: excel vba excel-vba ms-office

我正在尝试删除电子表格A列中的所有重复项。到目前为止,这是唯一对我有用的东西:

ActiveSheet.Range("A1:B100").RemoveDuplicates Columns:=Array(1, 1), Header:=xlNo

我的目标是能够从列A中选择仅具有值的单元格,然后删除重复项。我试过这个:

ActiveSheet.Range("A1", Range("A1").End(xlDown)).RemoveDuplicates Columns:=Array(1, 1), Header:=xlNo

我收到“无效的过程调用或参数”错误。另外,我也尝试过:

ActiveSheet.range("A1:A100").RemoveDuplicates Columns:=Array(1, 1), Header:=xlNo

只选择列'A'的前100个单元格,我也得到了相同的错误。我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果您只想处理单个列的已用部分:

Sub OnlyColumnA()
    Dim N As Long

    N = Cells(Rows.Count, "A").End(xlUp).Row
    ActiveSheet.Range("A1:A" & N).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

<强> 注意:

在此代码中, N 使用数据定义 A 列中最后一个单元格的行号。因此,如果数据 A 列中的最后一个单元格为 A35 ,则 N 的值为 35

因此,Range("A1:A" & N)表达式与Range("A1:A35")相同,但没有硬编码 35