如何检查字典VBA中是否存在项(不是键)

时间:2015-01-21 08:07:53

标签: vba dictionary

我想检查字典中是否存在特定值。我已经创建了一个字典:

Set Curr = CreateObject("Scripting.Dictionary")
For Index = 1 To NoOfCurr
   Curr.Add Index, Cells(15 + Index, 5).Value
Next

我需要检查字典中是否存在字符串。我已经编写了这样的代码:

Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
  IsInArray = arr.Exists(stringToBeFound)
End Function

它被这样调用: IsInArray("USD", Curr)并返回false。

我正在使用Exists功能,但它给我一个假。如何更改IsInArray以查看USD是否在货币字典中?

1 个答案:

答案 0 :(得分:4)

你可能会误解VBA的'词典'。

你不能通过“价值”获得“关键”,但可以通过“关键”获得“价值”。

在你的代码中,Curr的索引(整数)为'key',货币为'value'。这就是为什么你不能确定字典'Curr'中包含“USD”的原因。

如果要检查E列中的单元格中是否存在“USD”,则应使用currency作为“key”。

以下代码可能是您想要的,您可以使用'IsInArray(“USD”,Curr)'获得正确答案。

Set Curr = CreateObject("Scripting.Dictionary")
For Index = 1 To NoOfCurr
    Curr.Add Cells(15 + Index, 5).Value, Index 'currency is used as keys.
Next

Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
    IsInArray = arr.Exists(stringToBeFound)
End Function
相关问题