大家好,我們今天繼續講解VBA數組與字典解決方案的相關內容,今日講解的是第24講:對某列數據的排重,並回填不重複數據的方法。這是在工作中經常用的內容了,通過前幾講的講解,我們對動態數組有了深刻的認識,今日就是我們利用前幾講內容完成我們實際問題的過程了。

如下面的工作表數據:

在A列中純在着大量的重複數據,而且沒有一定的規律,如何排除呢?我們看下面的代碼:

Sub MyNZsz_7() '第24講 利用數組對工作表某列數據排重的方法

Dim Arr() As String

Dim Temp() As String

Splarr = Range("A1:A" & Range("A1").End(xlDown).ROW)

ReDim Arr(1)

Arr(1) = Splarr(1, 1)

r = 1

For i = 2 To UBound(Splarr)

Temp = Filter(Arr, Splarr(i, 1))

If UBound(Temp) < 0 Then

r = r + 1

ReDim Preserve Arr(1 To r)

Arr(r) = Splarr(i, 1)

End If

Next

Sheets("24").Range("C1").Resize(r, 1) = Application.Transpose(Arr)

End Sub

代碼截圖如下:

代碼的講解:

1 Splarr = Range("A1:A" & Range("A1").End(xlDown).ROW) 此處我定義了數組爲A列的數據,大家要記住這種寫法。

2 Arr(1) = Splarr(1, 1) 此處要注意的是Splarr(1, 1)是一個二維數組,這一點要注意理解,也就是說工作表中的數據都是二維數組的元素。

下面看代碼的運行:

運行的時間幾乎可以忽略不計,上圖我僅僅給出了部分的結果。

今日內容迴向:

1 如何從工作表數據給數組賦值?

2 如何理解工作表數據是二維數組?

相關文章