Arrays 访问数组中的字典

Arrays 访问数组中的字典,arrays,vba,dictionary,Arrays,Vba,Dictionary,我创建了一个函数CreateArrayOfDicts(),它返回字典数组。现在我正在努力访问另一个子目录中的字典。如何访问其中一个字典,特别是每个字典中专用键下的值 “类别” 是字典里的一个键 Sub EditDataSeriesParams() Dim mySeries As Series Dim key As Variant catparams = CreateArrayofDicts() ' array of dictionaries Dim ws As

我创建了一个函数CreateArrayOfDicts(),它返回字典数组。现在我正在努力访问另一个子目录中的字典。如何访问其中一个字典,特别是每个字典中专用键下的值

“类别”

是字典里的一个键

 Sub EditDataSeriesParams()
    Dim mySeries As Series
    Dim key As Variant
    catparams = CreateArrayofDicts() ' array of dictionaries
    Dim ws As Worksheet
    Set ws = Sheets("Sheet1")

    i = 7
    'Debug.Print ws.Cells(7, 21)

    Do Until IsEmpty(ws.Cells(i, 21))
        For Each mySeries In ActiveSheet.ChartObjects("Test").Chart.SeriesCollection
            For j = 0 To UBound(catparams) 'entering array of dictionaries
                If ws.Cells(i, 21) = mySeries.Name And catparams(j).("Category") = mySeries.Name Then ' issue is here
                    mySeries.Select
                    Debug.Print 5
                    With Selection
                        .MarkerStyle = xlMarkerStyleTriangle
                        .MarkerSize = catparams(j)("Size") ' Size is a key in dict
                        .MarkerBackgroundColor = catparams(j)("Back") ' Back is a key in dict
                        .MarkerForegroundColor = catparams(j)("Front") ' Front is a key in dict

                    End With

                End If

            Next j
        Next mySeries

    i = i + 1
    Loop
End Sub

尝试不带点,就像您在代码中随后所做的那样

catparams(j)("Category") = mySeries.Name

尝试不带点,就像您在代码中随后所做的那样

catparams(j)("Category") = mySeries.Name

什么是
catparams
?它是一组字典。检查这里:这是你问题的第一行哈哈。很抱歉。什么是
catparams
?它是一个字典数组。检查这里:这是你问题的第一行哈哈。很抱歉。