Excel VBA:将CompareMode设置为TextCompare与“Dictionary”时,“无效过程调用或方法”

出于某种原因,我无法将字典offONameDicCompareMode设置为TextCompare 。 我不断收到"Invalid Procedure or Call Error" 。 我想确保用户提供的提供密钥的大小写不会影响字典将密钥识别为有效的能力,即如果密钥是“hello”,“Hello”也会被识别为密钥。

请注意,我使用VBA Excel中已安装库的列表中的Microsoft Scripting Runtime Reference

我的代码:

 Sub Main() '...code... Dim offONameDic As Scripting.Dictionary '...code... Set offONameDic = New Scripting.Dictionary With offONameDic .Add "Blood", "Blood" .Add "Liver", "Liver" .Add "Kidneys", "Kidneys" .Add "Kidney", "Kidneys" .Add "Spleen", "Spleen" .Add "Heart", "Heart" .Add "Lungs", "Lungs" .Add "Lung", "Lungs" .Add "Stomach", "Stomach" .Add "Muscle", "Muscle" .Add "Bone", "Bone" .Add "Carcass", "Carcass" .Add "Tumor", "Tumor" .Add "Axial Lymph Node", "Axial Lymph Node" .Add "ALN", "Axial Lymph Node" .Add "Igunial Lymph Node", "Igunial Lymph Node" .Add "IgLN", "Igunial Lymph Node" .Add "Intestines", "Intestines" .Add "Intestine", "Intestines" .Add "Cecum", "Cecum" .Add "Tail", "Tail" .CompareMode = TextCompare '****This Line Causes the "Invalid Procedure or Call" Error"**** End With '...code... End Sub 

将任何数据添加到字典之前,您需要设置CompareMode属性,因此将导致错误的行移动到With offONameDic行之后的第一行,例如:

 With offONameDic .CompareMode = TextCompare ' No longer gives an error! .Add "Blood", "Blood" ... 

根据文件 :

如果您尝试更改已包含数据的Dictionary对象的比较模式,则会发生错误。