Excel VBA 中的编码数组
Coding Array in 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:$BB").Select
ActiveSheet.Range("$A:$BB").RemoveDuplicates Columns:=(ary), Header _
:=xlNo
End Sub
请注意 (ary)
这是为了解决一个非常古老的 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:$BB").Select
ActiveSheet.Range("$A:$BB").RemoveDuplicates Columns:=(ary), Header _
:=xlNo
End Sub
请注意 (ary)
这是为了解决一个非常古老的 VBA 错误。