Я пытаюсь сравнить данные в двух словарях, чтобы определить ключи, которые имеют разные элементы.У меня возникают трудности при записи цикла и оператора if, чтобы это произошло.
В приведенном ниже примере создается два словаря - BeginningData и EndingData .Ключ "Джейн Джонс" имеет разные пункты в каждом словаре.
Вывод, который я ищу в этой ситуации: "Джейн Джонс 222222222 в первом словаре, но 444444444 во втором словаре"
Любые идеи покак бы я завершил этот код?Я пытаюсь избежать массивов в этом конкретном проекте.Спасибо!
Sub MainProcess()
Dim BeginningData As Dictionary, EndingData As Dictionary
Dim StartItem As Variant, EndItem As Variant
Set BeginningData = New Dictionary
Set EndingData = New Dictionary
With BeginningData
.Add "John Smith", 111111111
.Add "Jane Jones", 222222222
.Add "Jim Brown", 333333333
End With
With EndingData
.Add "John Smith", 111111111
.Add "Jane Jones", 444444444
.Add "Jim Brown", 333333333
End With
For Each StartItem In BeginningData.Keys
For Each EndItem In EndingData.Keys
'Some sort of if statement here
Debug.Print _
GetKey(BeginningData, BeginningData.Item(EndItem)) & _
" is " & _
BeginningData.Item(StartItem) & _
" in the first dictionary, but is " & _
EndingData.Item(StartItem) & _
" in the second dictionary."
End If
Next
Next
End Sub
Function GetKey(Dic As Dictionary, strItem As String) As String
Dim key As Variant
For Each key In Dic.Keys
If Dic.Item(key) = strItem Then
GetKey = CStr(key)
Exit Function
End If
Next
End Function