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