Выгрузка значений словаря - VBA

Узнай цену своей работы

Формулировка задачи:

Приветствую всех! Надеюсь на Вашу помощь с выгрузкой элементов словаря из листа "источник" в указанный диапазон на листе "Лист2". Писать построчно диапазон тоже не выходит, выгружает 1 строку значений Файл прилагается ниже.

Решение задачи: «Выгрузка значений словаря»

textual
Листинг программы
Sub pramoy_code()
    Dim A, B
    Dim dic
    Dim i As Integer, j As Integer
    Set dic = CreateObject("Scripting.Dictionary")
    A = Worksheets("источник").[a1].CurrentRegion.Value
    For i = 2 To UBound(A)
        For j = 2 To UBound(A, 2)
            dic(A(i, 1) & A(1, j)) = A(i, j)
        Next j
    Next i
    With Worksheets(1)
        'B = .[a6].CurrentRegion.Value  ' пропущена первая .
        ' Получается результирующий диапазон A4:M28 - из-за шапки
        ' Для точной  разметки В в A6:M29 :
        B = .UsedRange.Offset(5, 0).Resize(.UsedRange.Rows.Count - 5, .UsedRange.Columns.Count).Value
        For i = 4 To UBound(B)
            'For j = 1 To UBound(B, 2)
            ' Если выводим в диапазон 2016 года I9:M28 без повторения в 2015
            For j = 9 To UBound(B, 2)
'Неправильно: If dic.Exists(B(i, 1) & B(j, 1)) Then Cells(i, 9) = dic(B(i, 1) & B(j, 1)) 'Пропущена первая .
              If dic.Exists(B(i, 1) & B(1, j)) Then .Cells(i + 5, j) = dic(B(i, 1) & B(1, j))
            Next j
        Next i
    End With
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы