【发布时间】:2020-12-14 12:59:47
【问题描述】:
我正在尝试学习字典的工作原理,我知道它们类似于集合,但我不太明白有些东西,现在这是我的测试工作:
我有一些这样的价值观
然后我将所有内容放入带有模块的字典中,因为我想将列中的值与另一个值进行比较
Sub dict()
Dim diz As New Dictionary
Dim ora As classe
Dim rg As Range
Set rg = Foglio4.Range("b2:b700")
For i = 2 To 700
Set ora = New classe
ora.old = rg.Cells(i, 1).Value
ora.turn = rg.Cells(i, 2).Value
diz.Add ora, i
Next i
If diz.Exists("4072") = True Then
MsgBox "esiste"
End If
End Sub
在 diz 中,我有所有值,例如,diz item (1) "4072","1602"
但我想删除重复项
就是不知道怎么弄
我尝试使用 Exists 函数,但它总是返回错误
目标是这样的
我在字典中搜索一个数字,然后我在另一列中返回了值
我希望你能帮助我更好地理解字典
提前谢谢你
【问题讨论】:
-
字典中的键总是唯一的。项目可以多次使用不同的键。查看此页面以了解有关字典的更多信息:excelmacromastery.com/vba-dictionary espacialy 在这部分中查看,以了解如何添加新的键/项对或更新现有键的项excelmacromastery.com/vba-dictionary/… 字典也有 Exists() 方法,集合中不存在。
-
还要记住关系是倒置的。您不会从字典中删除重复项,因为它们从未真正添加过。工作流程应该是(1)识别唯一的键值,(2)检查该值是否已经被添加(使用
Exists),(3)如果没有,然后添加到dict,否则做你需要的任何操作做。
标签: excel vba dictionary