VBA字典鍵數據的應用處理

與其待到暮年時安於自欺欺人的處境,不如現在努力學習。"久眠長愚痴,過飽不便用功"。學習是一件很辛苦的事。要有一顆充滿生機的心,把握現在,這才是進取。機會總在等待中出現,越是有意義的事情,困難會越多。願力決定始終,智慧決定成敗。尋找心靈的平靜;不管遇到什麼,都是風景。懷善心,做善事。看淡紛爭,看輕得失。茶,滿也好,少也好,不要計較;濃也好,淡也好,其中自有值得品的味道。把浮躁的心靜下來,去感悟真實的時間,靜下心,多學習,積累福報。保持快樂的心態,堅定且執著。學習有用的知識,經營自己,而不是天天混日子,也不是天天熬日子。為後疫情時代做知識的儲備。在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。

在取代OFFICE新的辦公軟件沒有到來之前,誰能數據處理做到最為極致,誰就是王者。其中登峰至極的技能非VBA莫屬!

今日繼續和大家分享VBA編程中常用的常用"積木"過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。最近代碼多是出自"VBA數組與字典解決方案"教程,有一些朋友反映分享的內容不能很好的理解,可以參考這套資料的內容進行研讀。今日分享的是第286期。

VBA字典鍵數據的應用處理

VBA過程代碼286:利用工作表函數,對字典的鍵進行排序,並給出對應的重複個數

Sub MyNZ ()

Dim ran

Sheets("58").Select

Set mydic = CreateObject("Scripting.Dictionary") '字典

'將數據放入字典中,並計數

For Each ran In Sheets("58").Range("a2:a" & Range("a2").End(xlDown).Row)

If ran.Value <> "" Then

If Not mydic.exists(ran.Value) Then

mydic.Add ran.Value, 1 '初始值為1

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

[e:f].Clear

[e1] = "排序": [f1] = "重複次數"

Sheets("58").[e2].Resize(mydic.Count, 2) = X

Set mydic = Nothing

End Sub

代碼講解:上述代碼實現將數據放到字典mydic中,放的同時利用鍵值進行累計出現重複的次數,然後取出鍵和鍵值放到對應的數組k,t中備用,同時再建立一個數組x用於存放排序的結果,然後在數組k中提取數值,提取是按照從大到小的順序進行。並將結果放到數組x中,最後回填數據。

VBA字典鍵數據的應用處理

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字典鍵數據的應用處理


分享到:


相關文章: