vba 自动排序_给VBA字典键值排序,并提取需要的数据
未知的領(lǐng)域很廣、風(fēng)景很美,不要蜷縮在一小塊自認(rèn)為天堂的世界里。待到暮年時(shí)安于自欺欺人,要努力提高自己,學(xué)習(xí)是一件很辛苦的事。要有一顆充滿生機(jī)的心,把握現(xiàn)在,這才是進(jìn)取。機(jī)會(huì)總在等待中出現(xiàn),越是有意義的事情,困難會(huì)越多。愿力決定始終,智慧決定成敗。尋找心靈的平靜;不管遇到什么,都是風(fēng)景。懷善心,做善事。看淡紛爭(zhēng),看輕得失。茶,滿也好,少也好,不要計(jì)較;濃也好,淡也好,其中自有值得品的味道。把浮躁的心靜下來(lái),去感悟真實(shí)的時(shí)間,靜下心,多學(xué)習(xí),積累福報(bào)。保持快樂的心態(tài),堅(jiān)定且執(zhí)著。學(xué)習(xí)有用的知識(shí),經(jīng)營(yíng)自己,而不是天天混日子,也不是天天熬日子。為后疫情時(shí)代做知識(shí)的儲(chǔ)備。在今后更加嚴(yán)峻的存量殘殺世界中,為自己的生存進(jìn)行知識(shí)的儲(chǔ)備,特別是新知識(shí)的儲(chǔ)備。
在取代OFFICE新的辦公軟件沒有到來(lái)之前,誰(shuí)能數(shù)據(jù)處理做到最為極致,誰(shuí)就是王者。其中登峰至極的技能非VBA莫屬!
今日繼續(xù)和大家分享VBA編程中常用的常用“積木”過程代碼。這些內(nèi)容大多是我的經(jīng)驗(yàn)的記錄,來(lái)源于我多年的經(jīng)驗(yàn)。最近代碼多是出自”VBA數(shù)組與字典解決方案”教程,有一些朋友反映分享的內(nèi)容不能很好的理解,可以參考這套資料的內(nèi)容進(jìn)行研讀。今日分享的是第288期。
VBA過程代碼288:利用工作表函數(shù),對(duì)字典的鍵值按大小排序,并給出對(duì)應(yīng)的鍵
Sub MyNZ ()
Dim ran
Sheets("60").Select
Set mydic = CreateObject("Scripting.Dictionary") '字典
TT = Cells(Rows.Count, 1).End(xlUp).Row
For Each ran In Sheets("60").Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row)
If ran.Value <> "" Then
If Not mydic.exists(ran.Value) Then
mydic.Add ran.Value, 1 '需要注意此處要加VALUE
Else
mydic(ran.Value) = mydic(ran.Value) + 1
End If
End If
Next
'注意此處把字典的鍵和鍵值取出
K = mydic.keys: T = mydic.items
ReDim X(1 To mydic.Count, 1 To 2)
For i = 1 To mydic.Count
X(i, 1) = Application.Large(K, i) '按最大值的先后將數(shù)據(jù)放到數(shù)組中
X(i, 2) = mydic(X(i, 1)) '提取相應(yīng)的鍵值
Next
MYCOUNT = i - 1
Set mydic = Nothing
Set mydic = CreateObject("Scripting.Dictionary") '字典
For i = 1 To MYCOUNT
mydic(X(i, 1)) = X(i, 2)
Next
K = mydic.keys: T = mydic.items
ReDim X(1 To mydic.Count, 1 To 2)
For i = 1 To mydic.Count
X(i, 2) = Application.Max(T)
'找到鍵的位置
W = Application.Match(X(i, 2), T, 0) - 1
'提取鍵
X(i, 1) = K(W)
'相應(yīng)的鍵值變成空,以用MAX函數(shù)
T(W) = ""
Next
[e:f].Clear
[E1] = "排序": [f1] = "重復(fù)次數(shù)"
Sheets("60").[E2].Resize(mydic.Count, 2) = X
Set mydic = Nothing
End Sub
代碼解析: 上述過程實(shí)現(xiàn)了把數(shù)據(jù)裝入字典mydic,將數(shù)值放入字典的鍵,出現(xiàn)的次數(shù)放入鍵值中,然后把鍵及鍵值分別放入數(shù)組K,T中,注意是一維數(shù)組,然后對(duì)數(shù)值進(jìn)行排序,用了large函數(shù),排序完成后,再次裝入字典,取出鍵和鍵值,此處這么處理的目的是獲取一個(gè)一維數(shù)組,也可以用其他的處理方式,然后對(duì)鍵值進(jìn)行排序,利用的是MAX函數(shù),最后形成了先對(duì)數(shù)值出現(xiàn)次數(shù)的排序后對(duì)數(shù)值進(jìn)行排序的結(jié)果,放到數(shù)組X中,最后回填數(shù)據(jù)。
VBA是利用Office實(shí)現(xiàn)自己小型辦公自動(dòng)化的有效手段.我根據(jù)自己20多年的VBA實(shí)際利用經(jīng)驗(yàn),現(xiàn)在推出了四部VBA學(xué)習(xí)教程,也是我“積木編程”思想的具體體現(xiàn)。
第一:VBA代碼解決方案,是VBA中各個(gè)知識(shí)點(diǎn)的講解,這部教程可以覆蓋絕大多數(shù)的知識(shí)點(diǎn);
第二:VBA數(shù)據(jù)庫(kù)解決方案,是數(shù)據(jù)處理的專業(yè)利器,詳細(xì)的介紹了利用ADO連接ACCDB和EXCEL的方法和實(shí)例操作。
第三:VBA數(shù)組與字典解決方案,講解VBA中的數(shù)組和字典的利用。字典是VBA代碼水平提高的手段,值得深入的學(xué)習(xí)。
第四:VBA代碼解決方案之視頻,是專門面向初學(xué)者的視頻講解,可以快速入門,更快的掌握這門技能。
上述教程的學(xué)習(xí)順序,1,3,2或者是4,3,2逐漸深入的了解VBA掌握VBA.目前正在集中精力寫第五部教程:VBA中類的解讀和利用,希望在年內(nèi)能陸續(xù)在各個(gè)平臺(tái)和大家見面。
利用VBA實(shí)現(xiàn)個(gè)人辦公小型自動(dòng)化非常值得學(xué)習(xí),希望大家掌握這個(gè)工具,利用這個(gè)工具,讓自己輕松,高效,快樂的工作。我的“積木編程”思想也是值得大家借鑒的,這種思想讓大家在代碼中解脫出來(lái),成模塊的構(gòu)建自己的應(yīng)用,提高自己的編程效率。根據(jù)我提供的經(jīng)驗(yàn),利用時(shí)間多學(xué)習(xí)。
總結(jié)
以上是生活随笔為你收集整理的vba 自动排序_给VBA字典键值排序,并提取需要的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机校本培训心得,个人校本培训心得体会
- 下一篇: 红外倒车雷达原理图_硅光电倍增管 (Si