一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Excel 字典基本語句、以及中級字典運(yùn)用例子

 liuyunhe1954 2017-02-21
先給個(gè)簡化版的字典基本語句:


基本功能已經(jīng)盡在其中了。

如能熟練掌握,則可游刃有余。

Sub DicTest()

    Set Dic = CreateObject('Scripting.Dictionary') 'use Dictionary
    '引用字典 【按后期綁定方式引用,這樣代碼比較通用?!?/span>
    ' 如采取前期綁定 Dim Dic as New Dictionary 則可能有些電腦沒有引用Scripting Runtime設(shè)置而不能用
               
    '語法:Dic(Key) = Item 將[關(guān)鍵詞/項(xiàng)目]同時(shí)加入字典 并能忽略關(guān)鍵詞不存在錯(cuò)誤

    Dic('A') = 'A1' 'Add [key/item] if key is new
    '如果key不存在則直接加入[key/item]
   
    Dic('A') = 'A2' 'Cover [item] if key is exists without Err
    '如果key存在則覆蓋更新item 且不產(chǎn)生key存在的錯(cuò)誤提示
    '因此本質(zhì)上,用這個(gè)方法給字典賦值、比使用 Dic.Add 更好!
    '(如需要對key存在進(jìn)行錯(cuò)誤處理,可使用Dic.Exists(key)方法,更加靈活。例子在下面
   
    Dic.key('A') = 'B'   'Change exists key to new key and erase old key
    '當(dāng)key和item已經(jīng)存在時(shí),更新key內(nèi)容但保留已經(jīng)存在的item內(nèi)容。
    '其實(shí)這個(gè)語句實(shí)際意義不大。即實(shí)際使用的情況很少,幾乎沒有。
    '備注:也可以用 tmp = Dic('A') : Dic.Remove('A') : Dic('B')= tmp來完成。

    Dic('B') = 'B1' 'Cover [item] if key is exists
    Dic('C') = 'C1' 'Add [key/item] if key is new
   

    Dic(1) = 1 'you can use number as key
    '通常使用Sting文本字符串作為字典key關(guān)鍵詞,也可以使用數(shù)字、數(shù)值作為key
    '但特別提醒: 如果整個(gè)字典關(guān)鍵詞中既有數(shù)字又有字符串,應(yīng)統(tǒng)一為字符串格式以提高效率
    '否則運(yùn)行速度可能會慢十倍以上。
    '速度差異: 純數(shù)字>純文本字符>>>文本/數(shù)值混合型

    '下面是Dic.Exists(key)方法的常用模式: 和If判斷結(jié)合起來使用
    For i = 1 To 2
        If Not Dic.Exists(i) Then
            Dic(i) = i 'if key not exists then add [key/item]
            '如果檢查發(fā)現(xiàn)字典中尚不存在關(guān)鍵詞、則加入字典 (一般會這么用)
        Else
            Dic(i) = Dic(i) * 10 'if key exists then Change [item]
            '如果檢查發(fā)現(xiàn)字典中已經(jīng)存在關(guān)鍵詞、則更新字典中key對應(yīng)的item (或什么也不做)
        End If
    Next
   
    '提取字典中keys/items結(jié)果分別得到各自的一維數(shù)組、順序?yàn)榧尤胱值鋾r(shí)的先后順序
    kr = Dic.keys   'Get keys result as Array
    tr = Dic.items  'Get items result as Array
   
    '循環(huán)遍歷字典中的keys/items內(nèi)容
    For i = 0 To Dic.Count - 1        t1 = kr(i)
        t2 = tr(i)
    Next

    '把字典中keys/items結(jié)果分別輸出到工作表的某一列
    [a1].Resize(Dic.Count) = WorksheetFunction.Transpose(Dic.keys)   'Output keys result
    [b1].Resize(Dic.Count) = WorksheetFunction.Transpose(Dic.items)  'Output items result
   
End Sub

需要注意的是,一般推薦把工作表區(qū)域中的內(nèi)容讀入VBA內(nèi)存數(shù)組,然后再使用。
此時(shí)得到的結(jié)果,默認(rèn)都已經(jīng)是Range(Rng).Value ,所以字典使用不會有問題。


但有些初學(xué)者會直接引用單元格使用,此時(shí)必須按 Dic(Range('A1').Value) = item 方式使用字典。
否則即會錯(cuò)誤地把 Range('A1')裝入字典而產(chǎn)生非預(yù)期的結(jié)果。

話說,我到現(xiàn)在也不知道,把Range()對象裝入字典有何實(shí)際意義。也許只是一種未排除的錯(cuò)誤用法。
所以我的建議是:大家完全不需要考慮Dic(Range())這樣的用法。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    天海翼精品久久中文字幕| 欧美三级大黄片免费看| 伊人国产精选免费观看在线视频| 日本加勒比在线观看一区| 蜜臀人妻一区二区三区| 日韩少妇人妻中文字幕| 久久99精品国产麻豆婷婷洗澡| 欧美人禽色视频免费看| 精品老司机视频在线观看| 日韩精品视频免费观看| 国产精品一区欧美二区| 欧美日韩亚洲巨色人妻| 欧美午夜伦理在线观看| 日本熟女中文字幕一区| 亚洲国产成人久久99精品| 欧美日韩国产精品第五页| 中文人妻精品一区二区三区四区 | 成人免费高清在线一区二区| 五月激情婷婷丁香六月网| 激情三级在线观看视频| 毛片在线观看免费日韩| 激情丁香激情五月婷婷| 欧美老太太性生活大片| 欧美在线观看视频免费不卡| 欧美二区视频在线观看| 在线观看免费无遮挡大尺度视频| 一本久道久久综合中文字幕| 神马午夜福利免费视频| 欧美激情一区二区亚洲专区| 插进她的身体里在线观看骚| 欧美人妻少妇精品久久性色 | 国产免费一区二区不卡| 黄色片国产一区二区三区| 欧美日韩亚洲巨色人妻| 久久国产精品熟女一区二区三区 | 国产日韩欧美在线亚洲| 精品国产91亚洲一区二区三区| 欧美成人国产精品高清| 国产成人午夜av一区二区| 日韩免费国产91在线| 日韩特级黄色大片在线观看|