查找与字典中的项对应的键

Bri*_*get 4 excel vba dictionary excel-vba

有没有办法找到与VBA字典中给定项目对应的键?

http://msdn.microsoft.com/en-us/library/aa164502%28v=office.10%29.aspx MSDN建议可以使用"Key"属性,但是当我尝试使用它时,我收到错误( "编译错误:无效使用属性").我在过去发现这里给出的"存在"方法对我来说也不起作用,所以我认为它们是以前版本的Office中的命令,现在已经过时了.但是,我无法找到最新版Office的等效文件.

我可以使用a for each循环来创建一个新的字典,其中旧字典中的键是新字典中的项(反之亦然),然后使用".Item",但我想知道是否有内置命令会让我避免这种情况.

Sid*_*out 11

但我想知道是否有一个内置命令可以让我避免这种情况.

不,没有内置命令.你将不得不求助于某种循环.这是一个例子.我创建了一个小函数来获取对应于字典中项目的键.

Dim Dict As Dictionary

Sub Sample()
    Set Dict = New Dictionary

    With Dict
      .CompareMode = vbBinaryCompare
      For i = 1 To 10
        .Add i, "Item " & i
      Next i
    End With

    Debug.Print GetKey(Dict, "Item 3")
End Sub

Function GetKey(Dic As Dictionary, strItem As String) As String
    Dim key As Variant
    For Each key In Dic.Keys
        If Dic.Item(key) = strItem Then
            GetKey = CStr(key)
            Exit Function
        End If
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

  • 值得指出的是,项不是唯一的,并且这种方法只能检索字典中_first_项的键,其键值为`strItem`。 (2认同)