目前我在字典上运行,以便根据其中存储的密钥填充表中的缺失值。问题是我的表具有比存储在字典中的值更多的值(键)。在某些情况下,我的表中的信息类似于字典中的某个键,我想知道是否可以使用通配符来检索项目。示例如下:
字典中的示例记录:
让我们假设我的表有以下条目:
是否有可能实现这一目标?如果这个例子不好,我很抱歉,但我希望你们中的任何人都可以帮助我。
我发现了几篇关于这个主题的文章:
提前谢谢!
答案 0 :(得分:0)
您可以编写一个返回布尔值的函数。
Public Function KeywordExists(ByVal Keyword As String) As Boolean
Dim k As Variant
For Each k In objDict.Keys 'Your dictionary object
If Keyword Like "*" & k & "*" Then
KeywordExists = True
Exit For
End If
Next k
End Function
要打电话:
If KeywordExists("Foo") then '...
修改强>
要返回密钥,只需将返回类型更改为字符串。
Public Function StringKeyword(ByVal Keyword As String) As String
Dim k As Variant
For Each k In objDict.Keys 'Your dictionary object
If Keyword Like "*" & k & "*" Then
StringKeyword = K
Exit For
End If
Next k
End Function
要打电话:
Dim key As String
key = StringKeyword("Foo")
答案 1 :(得分:0)
左栏回答:不要使用词典,不要使用之类的,因为这种方法太慢而且不能很好地扩展。请尝试其中之一:
查尔斯威廉姆斯在这里有一篇很棒的帖子可能很有用,无论如何应该阅读: https://fastexcel.wordpress.com/2012/07/10/comparing-two-lists-vba-udf-shootout-between-linear-search-binary-search-collection-and-dictionary/