Excel VBA 之 去除重複項


Excel VBA 之 去除重複項

今天我們來講一下字典的應用,字典Dictionary是VBA中一個非常有用的對象。字典對象相當於一種聯合數組,它是由具有唯一性的關鍵字(Key)和它的項(Item)構成。

由於字典的Key具有唯一性,所以我們經常用它來解決一些需要忽略重複值的問題,例如現在有一個工作簿,裡面有3張工作表,每張表格的A列都是姓名,所有這些姓名中有些是重複的,要求編寫一段代碼,在另一個工作表上顯示不重複的姓名。

我們按Alt+F11調出VBA代碼界面,插入一個模塊,新建一個過程Sub

在代碼中,我們首先定義一個字典對象

<code>Set dic = CreateObject("Scripting.Dictionary")/<code>

然後,我們需要遍歷所有工作表,將A列姓名數據依次添加到我們剛剛定義的字典中

<code>For Each sht In Sheets
If sht.Name <> "Sheet4" Then'因為Sheet4存放統計後的數據,所以不計入統計範圍
For i = 1 To sht.[A65536].End(xlUp).Row
dic(sht.Cells(i, 1).Value) = ""
Next
End If
Next/<code>

接下來,把字典的Key全部提取出來,它們是一個數組

<code>arrKeys = dic.keys/<code>

最後,我們需要將這些姓名放到Sheet4的A列

<code>Sheets(4).[A1].Resize(dic.Count, 1) = Application.Transpose(arrKeys)/<code>

Transpose是轉置函數,可以進行行列轉換


我們來看一下最終效果

Excel VBA 之 去除重複項

程序最終效果

全部代碼如下圖:


Excel VBA 之 去除重複項

代碼全貌

點擊下面鏈接可以查看我的其他文章哦!


喜歡的朋友記得點贊關注哦,網友們如果在Excel中遇到問題都可以找我交流,也可以在評論區或私信告訴我你想看到的VBA辦公教程,我將在下期分享給大家,以後不定期更新Excel VBA技巧!


分享到:


相關文章: