我有问题,调用Scripting.Dictionary对象上的Remove方法将无法工作。Excel VBA词典删除项目
Dim temp As String
Set dict = CreateObject("Scripting.Dictionary")
dict .Add(2,"asd")
dict .Add(3,"asd")
dict .Add(4,"asd")
dict .Add(5,"asd")
dict .Add(6,"asd")
For Each Key in dict.Keys
temp = Key
If(Key > 3) Then
dict.Remove(temp)
End If
Next
运行此代码会为字典生成相同数量的字典中的项目。
编辑:我只是修改了代码,以更好地反映实际使用情况。事实证明,字符串转换在这里是错误的。将键转换为字符串后,字典无法正确匹配值。不幸的是,这并没有帮助我解决问题。
Edit2:Key对象本身的类型是Range。将其分配给字符串变量会导致问题,比较在删除操作上失败。我尝试过使用变体作为替代,但是Key仍然被转换为字符串。
try dict.Keys() –
不起作用。我应该注意到我没有收到错误信息。相关条目不会被删除。 – narain
不要在删除中使用pamentalization –