如何检查字典中是否存在一个项目(不是键)VBA
How to check whether a item (not the key) exists in the dictionary VBA
我想检查字典中是否存在特定值。我创建了一个字典:
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)
而它 returns 是错误的。
我正在使用 Exists 函数,但它返回一个 False。如何更改 IsInArray 以查看美元是否在货币字典中?
您可能对 VBA 的 'Dictionary' 有误解。
你无法通过'value'获得'key',但可以通过'key'获得'value'。
在您的代码中,Curr 的索引(整数)为 'key's,货币为 'value's。这就是为什么你不能确定 "USD" 包含在词典 'Curr'.
中的原因
如果要检查 "USD" 是否存在于 E 列的单元格中,您应该使用货币作为 'key's。
以下代码可能是您想要的,您可以使用 '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
我想检查字典中是否存在特定值。我创建了一个字典:
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)
而它 returns 是错误的。
我正在使用 Exists 函数,但它返回一个 False。如何更改 IsInArray 以查看美元是否在货币字典中?
您可能对 VBA 的 'Dictionary' 有误解。
你无法通过'value'获得'key',但可以通过'key'获得'value'。
在您的代码中,Curr 的索引(整数)为 'key's,货币为 'value's。这就是为什么你不能确定 "USD" 包含在词典 'Curr'.
中的原因如果要检查 "USD" 是否存在于 E 列的单元格中,您应该使用货币作为 'key's。
以下代码可能是您想要的,您可以使用 '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