亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
741
2022-06-04
有關VBA的窗口介紹,已經很多,本節來點實際的,下面有個例子,說是要去重復值的,函數控的朋友門就不要妄想了,只用VBA實現,想張見識的朋友們可以瞧瞧哦。
如下圖:A列品名中存在著大量的重復數據,現在我們想把所有數據去掉重復值。
(函數控們請不要想函數方法,今天說的是VBA哦)
先上代碼:
Sub 去重復()Dim arr, d, iSet d = CreateObject("scripting.dictionary")arr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)For i = 1 To UBound(arr)d(arr(i, 1)) = ""Next[c1].Resize(d.Count, 1) = Application.Transpose(d.keys)Set d = NothingEnd Sub
下面會逐句進行解釋(黑色為代碼,藍色的為解釋)
所有的VBA代碼都是以sub開頭,end sub結尾。
在VBA中,單引號開頭的都為注釋,代碼是不會執行的哦。
Dim arr, d, i 'Dim定義三個變量,arr為數組,d為字典對象,i為數值
Set d = CreateObject("scripting.dictionary") '創建字典對象d,用于存放不重復數據
arr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row) '將A列有數據區域的值賦值給arr數組
For i = 1 To UBound(arr)d(arr(i, 1)) = ""Next 'For.....Next 這是一組循環數組,利用字典key不能重復特性保存不重復內容
[c1].Resize(d.Count, 1) = Application.Transpose(d.keys) '因為字典key保存的是橫向數組,需要轉置填充到C列單元格
Set d = Nothing '最后清空字典對象
單擊鍵盤上的alt+F8執行代碼,Look!最后執行出來的結果是這樣的,是不是覺得so easy!
小伙伴們如果更好的建議,可以告訴我們哦!
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。