日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VBA的字典對(duì)象

 宏碼智慧 2019-04-15

在Excel里試過(guò)了字典以后,發(fā)現(xiàn)比我以前常用的方法效率高,還好用,就隔三差五地用起來(lái)了。不過(guò), 雖然字典對(duì)象本身不復(fù)雜,但依舊常常有忘記了的地方,同一個(gè)問(wèn)題會(huì)反反復(fù)復(fù)地百度,真不應(yīng)該。

今天就抽一點(diǎn)點(diǎn)時(shí)間, 自己整理一回,免得老是麻煩度娘哦。

字典(Dictionary)對(duì)象:

相當(dāng)于一種聯(lián)合數(shù)組,由具有唯一性的關(guān)鍵字(Key)和它的項(xiàng)(Item)聯(lián)合組成。就好像一本字典,由字條和對(duì)應(yīng)的注解組成。

名詞對(duì)照:
Dictionary        字典
Key                   關(guān)鍵字
Item                  項(xiàng)(項(xiàng))

下面分三個(gè)方面講解。

  • 方法有6個(gè):Add、Exists、Keys、Items、Remove、RemoveAll。

  • 屬性有4個(gè):Count、Key、Item、CompareMode。

  • 經(jīng)典代碼舉例。

首先是方法:

  • Add方法
    object.Add (key, item)
    向 Dictionary 對(duì)象中添加一個(gè)關(guān)鍵字項(xiàng)目對(duì)。
    如果 key 已經(jīng)存在,將導(dǎo)致一個(gè)錯(cuò)誤。

  • Exists方法
    object.Exists(key)
    如果 Dictionary 對(duì)象中存在所指定的關(guān)鍵字則返回 true,否則返回 false。

  • Keys方法
    object.Keys( )
    返回一個(gè)數(shù)組,其中包含了一個(gè) Dictionary 對(duì)象中的全部現(xiàn)有的關(guān)鍵字。

  • Items方法
    object.Items( )
    返回一個(gè)數(shù)組,其中包含了一個(gè) Dictionary 對(duì)象中的所有項(xiàng)。

  • Remove方法
    object.Remove(key)

    Remove 方法從一個(gè) Dictionary 對(duì)象中清除一個(gè)關(guān)鍵字,項(xiàng)目對(duì)。
    如果所指定的關(guān)鍵字,項(xiàng)目對(duì)不存在,那么將導(dǎo)致一個(gè)錯(cuò)誤。

  • RemoveAll方法
    object.RemoveAll( )
    RemoveAll 方法從一個(gè) Dictionary 對(duì)象中清除所有的關(guān)鍵字,項(xiàng)目對(duì)。

其次是屬性:

  • Count屬性
    object.Count
    返回一個(gè)Dictionary 對(duì)象中的項(xiàng)目數(shù)。只讀屬性。

  • Key屬性
    object.Key(key) = newkey
    在 Dictionary 對(duì)象中設(shè)置一個(gè) key。
    如果沒(méi)有發(fā)現(xiàn)該 key,那么將創(chuàng)建一個(gè)新的 key 并且其 item 被設(shè)置為空。

  • Item屬性
    object.Item(key)[ = newitem]
    在一個(gè) Dictionary 對(duì)象中設(shè)置或者返回所指定 key 的 item。對(duì)于集合則根據(jù)所指定的 key 返回一個(gè) item。讀/寫(xiě)。
    newitem 是可選項(xiàng)。僅適用于 Dictionary 對(duì)象;是與所指定的 key 相關(guān)聯(lián)的新值。

    如果沒(méi)有找到該 item,那么將利用所指定的 newitem 創(chuàng)建一個(gè)新的 key。如果在試圖返回一個(gè)已有項(xiàng)目的時(shí)候沒(méi)有找到 key,那么將創(chuàng)建一個(gè)新的 key 且其相關(guān)的項(xiàng)目被設(shè)置為空。

  • CompareMode屬性
    object.CompareMode[ = compare]
    設(shè)置或者返回在 Dictionary 對(duì)象中進(jìn)行字符串關(guān)鍵字比較時(shí)所使用的比較模式。
    compare 是可選項(xiàng),代表比較模式的值??梢允?0 (二進(jìn)制)、1 (文本), 2 (數(shù)據(jù)庫(kù))。
    如果試圖改變一個(gè)已經(jīng)包含有數(shù)據(jù)的 Dictionary 對(duì)象的比較模式,那么將導(dǎo)致一個(gè)錯(cuò)誤。

最后是經(jīng)典代碼舉例:

這兩個(gè)例子很有Excel特色。

例一:把字典中所有的關(guān)鍵字賦給以B1單元格開(kāi)始的單元格區(qū)域中。

Dim dic, karr   
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "a", "名A"   
dic.Add "b", "B"
dic.Add "c", "C"
karr=dic.Keys     '數(shù)組,下限0
[B1].Resize(dic.Count,1)=Application.Transpose(karr)
'Resize第一個(gè)參數(shù)是行數(shù),第二個(gè)參數(shù)是列數(shù)。
'
Transpose,把水平排列的置換成豎向排列。

例二:把字典中所有的關(guān)鍵字對(duì)應(yīng)的項(xiàng)賦給以C1單元格開(kāi)始的單元格區(qū)域中

Dim dic, tarr   
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "a", "名A"   
dic.Add "b", "名B"
dic.Add "c", ""
tarr=dic.Items
[C1].Resize(dic.Count,1)=Application.Transpose(tarr)

更多例子可參考下面的參考資料。

正文完

參考資料

  • excelhome 藍(lán)橋玄霜 :常見(jiàn)字典用法集錦及代碼詳解

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多