excel vba 字典使用方法學習

2021-10-03 16:24:11 字數 2948 閱讀 5514

字典的索引(keys)不能重複,常用字典來去重,字典是乙個二維陣列,其中keys不重複,每個keys對應乙個值(item),值可以重複。vba中常用字典代替vlookup。

'字典學習

'宣告本模組中預設的比較方式,只能是text或者binary;如果不宣告的的話,預設為二進位制比較,但是對vba字典中的比較方式沒有影響。。

'option compare text '文字比較,不區分大小寫;例如:"a" = "a" 會返回true;

'option compare binary '系統預設的比較方式,二進位制比較,區分大小寫;例如: "a" = "a" 會返回false,"a" > "a" 會返回true。

sub 字典學習(

)'00 綜述

'四個屬性:comparemode,count,key,item

'六個方法:add,exists,items,keys,remove,removeall

'key關鍵字

'item項

'01 字典的引用方式

'01 前端引用,需要先勾選字典指令碼:工具-引用-microsoft scripting runtime,然後才可以使用,程式遷移不方便;輸入d.後會有下拉框提示

' dim d as new dictionary

'02 後端引用,不需要勾選字典指令碼,程式遷移方便;輸入d.後沒有提示

dim d as

object

set d = createobject(

"scripting.dictionary"

)'02 comparemode屬性;設定比較方式。

' d.comparemode = -1 '使用 option compare 陳述式的設定進行比較。經測試vba中不適用,不知vb中能不能用。

' d.comparemode = binarycompare '或0;預設的比較方式;進行二進位制比較,區分大小寫

' d.comparemode = textcompare '或1;進行文字比較,不區分大小寫

' d.comparemode = databasecompare '或2;僅用於 microsoft access。進行基於您自己資料庫中資訊的比較。

'03 add方法;向字典中新增元素。

on error

resume

next

for i =1to

4'要用range("a1").value格式輸入域key和item;

'如果不加.value,則字典的key為單元格,在進行輸出的時候會出現錯誤;

'例如:不加.value的時候,debug.print d.item("a")會輸出空值

'也可以先把值裝入陣列,再從輸入裝入字典。類似:'arr = range("a2:b" & i),然後讓字典從陣列中獲取值,提高程式執行速度。

d.add range(

"a"& i +

1).value, range(

"b"& i +

1).value '如果key已存在會報錯

' d(range("a" & i + 1).value) = range("b" & i + 1).value '沒有寫add,效果同上;但是如果key已存在,會直接覆蓋item,不會報錯,相當於修改item值,所以這種寫法較常用

next

on error

goto

0' msgbox d.item("a")

'04 count屬性;統計字典中元素的個數

j1 = d.count

debug.print j1

'05 key屬性,用於修改key值

d.key

("a")=

"g"'key屬性用法,修改已有的key值,如果字典中沒有待修改的key值,則會報錯

debug.print d.item(

"g")

'輸出結果為「蘋果」

' d.key("e") = "h"

'06 item屬性:

' debug.print d.item("g") '輸出key為"g"的項,對應的item值;

d.item(

"b")

= "西紅柿" '相當於d("b")= "西紅柿";如果key值不存在,也相當於d.add("b") = "西紅柿",存在的話,會報錯。

'd("b") 等於d.item("b")

[g1] = d(

"b")

[g2] = d.item(

"b")

'07 exists判斷乙個key是否已經存在,返回布林值,此方法最常用。

' if d.exists("a") = true then ***

'08 keys方法和items方法,一般用於把值輸出到陣列,進行進一步處理或輸出

arr = d.keys

brr = d.items

range(

"e1:e4"

) range(

"f1:f4"

)'09 remove方法,清除字典中的一條記錄

d.remove (

"b")

'10 removeall方法,清除字典中的所有元素

d.removeall 'removeall之後d仍然是字典物件

set d =

nothing

'此操作完成後未賦值的object物件

endsub

'11 總結

'字典一般用在去重,計數等方面,一定程度上代替函式中的vlookup,countif等

'一般先把資料裝入陣列,然後用字典進行去重和計數處理,其中主要會用到exists方法。

'然後進行其他操作,然後把值輸入到單元格中,或者把資料輸出到陣列,再進一步輸出到單元格中。

'最後把陣列和字典set為noting以釋放記憶體

字典的使用方法

定義詞典dic name dic name 檢視定義的詞典內容 dic name 檢視詞典中所有的key dic name.keys ipad car coffee iphone pen 檢視詞典中所有的key對應的值 dic name.values 3599,250000,35,4999,5 檢視...

dict字典使用方法

1 返回格式 dict keys dict values 和 dict items 2 常用於迴圈 迭代 for key in dict temp.keys pass for values in dict temp.values pass for k,v in dict temp.items pas...

Python字典及其使用方法

python中的字典屬於雜湊型別,其資料內容是以鍵值對的形式存在。即 的形式,其中,key值是不可變型別,value是可變型別。key值不能相同,但是value可以相同,若key值相同,則無法存入字典,可以通過key值修改字典value,直接通過鍵值新增。於網路 接下來總結下字典的一些常見操作 1....