sub 代替字典的数组()
Dim arr() As Variant'先定义一个数组
If (ActiveSheet.FilterMode = True) Then ActiveSheet.ShowAllData '判断是不是处于筛选状态,是的话清除筛选
a = Sheet1.Range("B1048576").End(xlUp).Row '找到表格1,b列的最后一行的行数
ReDim Preserve arr(1 To 1) As Variant‘重新定义数组,并且保留之前的数组数据
n = 0'定义一个数字为0
For i = 2 To a'因为第一行是标题,从第二行开始
'利用match公式在数组中查找新的数据是不是已经在数组里了,如果不在则返回#N/A,再利用IsNA公式判断是不是#N/A,是的话把对应的数据加入数组
If WorksheetFunction.IsNA(Application.Match(Sheet3.Range("B" & i), arr, 0)) Then
n = n + 1'当确定加入新的数据,我们把数组加长一位
ReDim Preserve arr(1 To n) As Variant‘重新定义数组,并且保留之前的数组数据
arr(n) = Sheet3.Range("B" & i).Value'数组的最后一位加入新的数据
End If
Next
'preserve只能对最后一个维度生效,所以二维数组用这招不太行(大概我没去验证过),建议想要一个没有重复值的一维数组可以用
end sub