×

字典 大小写 比较 CompareMode vbTextCompare

VBA字典key不区分大小写

鹭岛小千 鹭岛小千 发表于2022-03-10 22:35:49 浏览983 评论0

抢沙发发表评论

【问题描述】使用VBA字典,在判断key是否存在,或者根据key取值时,可以不区分key的大小写吗?

66-1.png

【小千解答】可以,将字典对象的CompareMode属性由默认的“二进制比较模式”改成“文本比较模式”。

示例代码:

Sub xqoffice()
    Dim xqDic1  As Object
    Set xqDic1 = CreateObject("scripting.dictionary")
    xqDic1.Add "XQOFFICE", "1695716607"
    Debug.Print "设置前:" & xqDic1("XQOFFICE")
    On Error GoTo Sample2
    xqDic1.CompareMode = vbTextCompare
    Debug.Print "设置后:" & xqDic1("xqOffice")
    Set xqDic1 = Nothing
    
Sample2:
    Debug.Print "----"
    Dim xqDic2  As Object
    Set xqDic2 = CreateObject("scripting.dictionary")
    xqDic2.CompareMode = vbTextCompare
    xqDic2.Add "XQOFFICE", "1695716607"
    Debug.Print "先设置再取值:" & xqDic2("xqOffice")
    Set xqDic2 = Nothing
End Sub

运行结果:

66-2.png


【注意事项】

如果尝试更改已包含数据的Dictionary对象的比较模式,将发生错误。也就是说,这个属性必须在往字典添加任何key之前设置


打赏码.png


【参考资料】

CompareMode属性


群贤毕至

访客