在Excel VBA中编码数组

我有以下代码来删除Excel中的重复项:

AlertRange.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, _ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, _ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49), Header:=xlNo 

它工作正常。 但是,有没有更好的方法提供数组到“Columns”参数? 它的编码方式看起来很愚蠢。

由于RemoveDuplicates需要一个Variant,基于零的数组,而不是一个Range,所以你可以使用一个循环:

 Sub Macro() Dim ary(0 To 48) For i = 0 To 48 ary(i) = i + 1 Next i Range("$A$1:$BB$20").Select ActiveSheet.Range("$A$1:$BB$20").RemoveDuplicates Columns:=(ary), Header _ :=xlNo End Sub 

请注意(ary)
这是为了适应一个非常古老的VBA错误。