【问题描述】使用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之前设置。

【参考资料】