Код массива VBA со словарем составных ключей

#arrays #vba #dictionary #key #composite

#массивы #vba #словарь #Клавиша #составной

Вопрос:

Я пытаюсь перебирать большие данные Excel в словаре и извлекать их. Вот мой код, я пытаюсь много ошибок, и я застреваю. Пожалуйста, помогите мне с моим кодом ~!!

введите описание изображения здесь

 Sub Me()

    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    
    Set ws1 = Sheets("Sheet1")
    lastrow = ws1.Range("B" amp; ws1.Rows.Count).End(xlUp).Row
    LastCol = ws1.Cells(Range("C2").Row, ws1.Columns.Count).End(xlToLeft).Column - 1
    vd = WorksheetFunction.Transpose(WorksheetFunction.Transpose(ws1.Range("C3").Resize(1, LastCol - 1)))
    va = ws1.Range("b4").Resize(lastrow - 2, 1)
    For i = LBound(va) To UBound(va)
        dict.Add addToString(vd(1), va(i, 1)), ws1.Cells(i   3, 3).Value

        Debug.Print dict("uniqueXXXuniqueYYY")
    Next i
       
End Sub


Public Function addToString(ParamArray myVar() As Variant) As String

    Dim cnt     As Long
    Dim val     As Variant
    Dim delim   As String: delim = "unique"

    For cnt = LBound(myVar) To UBound(myVar)
        addToString = addToString amp; delim amp; myVar(cnt)
    Next cnt

End Function
  

Комментарии:

1. Извините, почему ваша функция addToString() лучше, чем встроенная функция Join() ? Или простая конкатенация?

2. Какие ошибки и в каких строках?

3. Поскольку вы не включили заголовки строк / столбцов на своем скриншоте, это трудно связать с вашим кодом. Также «Много ошибок» не является полезным описанием точных ошибок, которые вы получаете. Пожалуйста, укажите текст ошибки и строки, в которых они встречаются.