首页 > 解决方案 > VBA /如何检查字典项目是否存在于另一个字典中?

问题描述

我需要在 VBA 中有两个字典,我想检查第二个字典中是否存在第一个字典的一个项目。我尝试了下面的代码,但没有找到该项目。仅出现消息“不存在”。有人可以帮忙吗?

Sub Dict()

Dim Tuna As Scripting.Dictionary
Set Tuna = New Scripting.Dictionary
Dim Pako As Scripting.Dictionary
Set Pako = New Scripting.Dictionary

Tuna.Add "01", "first"
Tuna.Add "02", "second"

Pako.Add "01", "first"

If Tuna.Exists(Pako.Items(0)) = True Then
MsgBox ("exists")
Else
MsgBox ("not exists")

End If
End Sub

问候

标签: arraysexcelvbadictionary

解决方案


.exists()函数检查 a 是否key存在。您正在搜索一个,item因此您需要使用循环并检查字典中的每个项目。

例如:

Sub Test()

    Dim item As Variant  
    Dim Tuna As Scripting.Dictionary
    Dim Pako As Scripting.Dictionary

    Set Pako = New Scripting.Dictionary
    Set Tuna = New Scripting.Dictionary

    Tuna.Add "01", "first"
    Tuna.Add "02", "second"
    Pako.Add "01", "first"

    For each item in Tuna.Items
        If item = Pako("01") Then

            ' do something

            Exit For
        End If
    Next

End Sub

推荐阅读