【发布时间】:2016-03-07 11:01:59
【问题描述】:
我正在尝试制作一个脚本,它可以删除数字列表中的重复项。唯一的问题是我不断收到Subscript out of range (Error 9)。
Sub remDupes()
Dim units() As Variant
For i = 2 To 37
Dim var As String
If ((Not Not units) = 0) Then
For x = 0 To 36
var = Cells(i, 22).Value
If (units(x) = var) Then
Range("V" & i, "AA" & i).Value = ""
Else
units(x) = var
End If
Next
End If
Next
End Sub
错误发生在:
If (units(x) = var) Then
我不知道为什么
【问题讨论】:
-
Units 是一个可变大小的数组,您需要先给它一个大小,然后再将值保存在其中。使用
Dim units(0 to 36) As Variant。 -
我不确定您到底想做什么,但
Range对象的RemoveDuplicates方法,或者使用Collection或Dictionary对象,可能是更好的方式。 -
@RonRosenfeld 谢谢!我已经找了好几个小时了,你是第一个提出这个建议的人。
-
@MathiasFrandsen 尝试其中一种方法,如果遇到问题,请编辑原始问题以寻求帮助;如果没有,您可以发布您的结果作为您自己问题的答案。
-
If ((Not Not units) = 0) Then对我来说毫无意义。这有什么用途 ?实际代码创建一个大小为 0 的空数组。试试Ìf Len(Join(units))>0 then