日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用

發布時間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我們今日繼續講解VBA數組與字典解決方案第37講內容:在VBA中字典的應用。對于字典,也許許多的朋友對此比較陌生,在有的語言里字典也稱之為MAP,應用也是比較廣泛的。

字典,其實就是一些“鍵-值”對。使用起來非常方便,有類似于微型數據庫的作用,可用于臨時保存一些數據信息。

一VBA中創建字典:用的是WSH引用。

Dim myd As Object

Set myd = CreateObject("Scripting.Dictionary")

二字典的方法,有Add、Exists、Keys、Items、Remove、RemoveAll,六個方法。

①Add 用于添加內容到字典中。如myd.Add key, item 第一個參數為鍵,第二個參數為鍵對應的值

②Exists用于判斷指定的關鍵詞是否存在于字典(的鍵)中。如myd.Exists(key)。如果存在,返回True,否則返回False。通常會在向字典中添加條目的時候使用,即先判斷字典中是否已存在這個記錄,如果不存在則新增,否則進行其它的操作。

③Keys獲取字典所有的鍵,返回類型是數組。如myd.Keys()

④Items獲取字典所有的值,返回類型是數組。如myd.Items()

⑤Remove從字典中移除一個條目,是通過鍵來指定的。myd.Remove(key)如果指定的鍵不存在,會發生錯誤。

⑥RemoveAll 清空字典。

三字典的屬性有Count、Key、Item、ConpareMode四種屬性

①Count用于統計字典中鍵-值對的數量。也可以簡單理解為統計字典中鍵的個數;

②Key用于更改字典中已有的鍵。如:myd.Key("oapp") = "Orange" 如果指定的鍵不存在,則會產生錯誤。

③Item用于寫入或讀取字典中指定鍵的值,如果指定的鍵不存在,則會新增。如.Item("oapp") = 10

下面以一個實例來說明字典的應用:在下圖的A列有不同的鍵,要在對應的鍵中寫入鍵值,然后把C列對應的鍵去掉,并任意增加一個鍵,最后在E,F列寫出最后的鍵和鍵值,代碼如下:

Sub MyNZsz_37() '第37講 字典的應用

Dim dic As Object

Sheets("37").Select

Set dic = CreateObject("Scripting.Dictionary") '引用字典

Dim arr(1 To 21), i As Long '建立一個數組用來給鍵賦值

For i = 1 To 21

arr(i) = i + 99

Next i

For i = 1 To 20

dic(Cells(i, "a").Value) = arr(i) '寫入鍵和鍵值,要注意寫入的方法

Next i

i = 1

Do While Cells(i, 3) <> ""

dic.Remove (Cells(i, "c").Value) '移除C列的鍵值

i = i + 1

Loop

dic.Add "WW21", "234" '增加一個鍵,鍵值是234

[e1].Resize(dic.Count, 1) = Application.Transpose(dic.Keys) '轉置顯示鍵

[f1].Resize(dic.Count, 1) = Application.Transpose(dic.items) '轉置顯示鍵值

End Sub

代碼截圖:

代碼講解:

1. 上述代碼首先創建一個字典對象,然后,把工作表A列的值放到數組,作為鍵;第三步是給字典的鍵賦值,第四步移除C列的鍵對,第五步,增加一個鍵,第六步顯示

2 Set dic = CreateObject("Scripting.Dictionary") '引用字典

字典的加載有兩種辦法,一個是CreateObject("Scripting.Dictionary"),另外一個是引用,就是在VBE窗口,打開引用,找到Dictionary的引用即可,本書中大多以SET形式來引用字典

3 For i = 1 To 21

arr(i) = i + 99

Next i

賦值一維數組,作為鍵值

4 For i = 1 To 20

dic(Cells(i, "a").Value) = arr(i) '寫入鍵和鍵值,要注意寫入的方法

Next i

寫入鍵和鍵值。要特別注意是我實例中的寫法

5 dic.Remove (Cells(i, "c").Value) '移除C列的鍵值

上述代碼移除鍵和鍵值.

6 dic.Add "WW21", "234" '增加一個鍵,鍵值是234

上述代碼增加鍵和鍵值.

6 [e1].Resize(dic.Count, 1) = Application.Transpose(dic.Keys) '轉置顯示鍵

[f1].Resize(dic.Count, 1) = Application.Transpose(dic.items) '轉置顯示鍵值

顯示鍵和鍵值

運行后的截圖:

今日內容回向:

1 什么是字典?

2 字典有哪些屬性?

3 如何給字典賦值?

4 利用字典如何進行排重?

總結

以上是生活随笔為你收集整理的建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。