Возвращаемое значение коллекции из ключа - PullRequest
0 голосов
/ 30 октября 2019

У меня проблемы с возвратом значения из коллекции с помощью ключа.

Подпрограмма GetPercentsUpdateCharts создает новую коллекцию и помещает в нее новое значение с ключом {{процентаOpen}} и значением "Тест".

Выводится функция Contains, написанная с помощью Debug.PrintЗначение true, которое доказывает, что ключ существует в коллекции.

Функция Retrieve всегда возвращает «Не найдено».

Где я ошибся?

Private Sub GetPercentsUpdateCharts()
    Set colPercentTokens = Nothing
    Set colPercentTokens = New Collection

    'Calculate Percents and Update Charts
    Store colPercentTokens, "{{percentOpen}}", "Test"
    Debug.Print Contains(colPercentTokens, "{{percentOpen}}")
    Debug.Print Retrieve(colPercentTokens, "{{percentOpen}}")
End Sub

Public Function Contains(col As Collection, key As String) As Boolean
    On Error GoTo NotFound
    Dim itm As Object

    Set itm = col(key)
    Contains = True

MyExit:
    Exit Function

NotFound:
    Contains = False
    Resume MyExit

End Function

Public Function Retrieve(col As Collection, key As String) As String
    On Error GoTo NotFound
    Dim itm As Object

    Set itm = col(key)
    Retrieve = CStr(itm)
MyExit:
    Exit Function

NotFound:
    Retrieve = "Not Found"
    Resume MyExit

End Function

Public Sub Store(col As Collection, k As String, v As String)
    Dim kv As Object

    If (Contains(col, k)) Then
        Set kv = col(k)
        kv.value = v
    Else
        Set kv = New KeyValue
        kv.Init k, v
        col.Add kv, k
   End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...