【问题描述】使用VBA字典,在判断key是否存在,或者根据key取值时,可以不区分key的大小写吗?
【小千解答】可以,将字典对象的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
运行结果:
【注意事项】
如果尝试更改已包含数据的Dictionary对象的比较模式,将发生错误。也就是说,这个属性必须在往字典添加任何key之前设置。
【参考资料】