首頁 > 科技

VBA 如何應用字典進行程式設計,學會後快速提高資料處理能力

2021-07-24 03:09:05

No.1

字典應用是一個十分高效的方法,可以成對資料處理,像一把利器,各種應用能力體現。

下面重點介紹創建和應用字典的方法。

創建字典很簡單隻需要一行程式碼,如下所示:

Set dic = CreateObject("Scripting.Dictionary")

沒技巧可言,記住就行了。

需要了解一下字典的幾個屬性和方法,如下圖所示:

下面用一個例項來,具體進行演示一下,如何進行字典應用。

No.2

示例:

本示例分別把兩列賦值給一個字典物件,然後將字典值新增到ListBox列表框中,按鈕可實現新增字典、刪除字典和刪除字典值的功能,實現過程如下。

新建字典程式碼:

Public dic As Object

Private Sub CommandButton1_Click()

Dim arr1, arr2, i As Integer

arr1 = ActiveSheet.Range("B3:B12")

arr2 = ActiveSheet.Range("C3:C12")

Set dic = CreateObject("Scripting.Dictionary")

For i = 1 To UBound(arr1) - 1

dic.Add arr1(i, 1), arr2(i, 1)

Next i

Me.ListBox1.Clear

For i = 1 To dic.Count

With Me.ListBox1

.AddItem

.List(i - 1, 0) = arr1(i, 1) '

.List(i - 1, 1) = dic.Item(i)

End With

Next i

'MsgBox Join(dic.items)

'MsgBox Join(dic.keys)

End Sub

刪除字典

Private Sub CommandButton2_Click()

If Not VBA.IsObject(dic) Then Exit Sub

If dic Is Nothing Then Exit Sub

dic.RemoveAll

Me.ListBox1.Clear

MsgBox "字典已經刪除!"

End Sub

刪除單項字典值

Private Sub CommandButton3_Click()

Dim dStr As String

If Not VBA.IsObject(dic) Then Exit Sub

If dic Is Nothing Then Exit Sub

If Me.ListBox1.ListIndex < 0 Then Exit Sub

If Me.ListBox1.Value = Null Then Exit Sub

If dic.exists(VBA.CInt(Me.ListBox1.Value)) Then '如果存在鍵

dStr = dic.Item(VBA.CInt(Me.ListBox1.Value))

dic.Remove VBA.CInt(Me.ListBox1.Value)

Me.ListBox1.RemoveItem (Me.ListBox1.ListIndex)

MsgBox "你已經刪除" & dStr, vbInformation, "提示"

End If

End Sub

程式碼相對複雜,主要是對一些可能是錯誤進行了判斷篩選,不做過多討論。

重點說一下字典的幾個方法:

  1. 新增鍵和值: Add key,item

  2. 刪除字典:RemoveAll

  3. 刪除某個鍵值:Remove key

  4. 搜尋鍵是否存在:exists

  5. 返回Key陣列:Keys

  6. 返回Item陣列:Items

  7. 返回字典數:Count

  8. 返回或設定Item:Item(Key)=[newItem]

  9. 設定Key:Key(key)=NewKey

對照程式進行檢視,使用方法,可進一步掌握字典方法和屬性分別代表的內容。

總之,字典是成雙成對的出現,一個Key對應著一個Item值,如果Key沒有了,也就沒有值了。可以理解為量子糾纏的理論一樣,一一對應,不可以分開。

歡迎關注、收藏

END


IT145.com E-mail:sddin#qq.com