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