Excel VBA - RemoveDuplicates方法不适用于Mac

时间:2014-10-30 14:21:41

标签: excel excel-vba excel-vba-mac vba

我有下面的代码,通过查看两列(第3列和第5列)来从工作表中删除重复项。

lRow = .Cells(Rows.Count, "A").End(xlUp).Row
'.Range("A1:BR" & lRow).RemoveDuplicates Columns:=Array(3, 5), Header:=xlYes
.Range("$A$1:$BR$" & lRow).RemoveDuplicates Columns:=Array(3, 5), Header:=xlYes

在Windows中可以正常使用,但遗憾的是在Mac上没有。

任何人都可以建议我在这里需要更改什么?

2 个答案:

答案 0 :(得分:0)

这段代码将创建一个唯一值列表并复制到另一个单元格中。所以创建唯一的列表。

您必须指定列表的开始位置以及要复制到的位置。您可以通过更改fromCell和toCell变量来完成此操作。我希望这会有所帮助。

Sub uniqueList()

    fromCell = "A1"
    toCell = "B1"

    fromColumn = Mid(fromCell, 1, 1) 'This will resolve to A
    toColumn = Mid(toCell, 1, 1)     'This will resolve to B

    fromRow = Mid(fromCell, 2)       'This will resolve to 1
    toRow = Mid(toCell, 2)           'This will resolve to 1


    Dim cl As Range, UniqueValues As New Collection, uValue As Variant
    Application.Volatile

    numRows = Range(fromCell).End(xlDown).Row

    On Error Resume Next
    For Each cl In Range(fromCell & ":" & fromColumn & numRows)
        UniqueValues.Add cl.Value, CStr(cl.Value)
    Next cl

    y = toRow - 1

    For Each uValue In UniqueValues
        y = y + 1
        Range(toColumn & y) = uValue
    Next uValue


End Sub

答案 1 :(得分:-1)

我认为答案已经过时。我正在更新,以防其他人搜索。
.removeduplicates在Mac的Excel中有效。随便您选择什么,然后删除所有内容。

所以这个... Range()。RemoveDuplicates