我想检查字典中是否存在特定值。我已经创建了一个字典:
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是否在货币字典中?
答案 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