Как я могу вставить в диапазон с помощью VBA, если диапазон определяется переменными, изменяющимися с помощью цикла «для i»?

#excel #vba

Вопрос:

поэтому я пытаюсь выполнить длинный список значений и проверить, равно ли значение в столбце А списку в столбце F, а затем, если это верно, проверьте, равен ли месяц в столбце В горизонтальному списку месяцев в столбцах строки 1 f:ab, а затем, если выполнены оба условия, вставьте значение в правильный квадрат сетки…в противном случае продолжайте циклически перебирать значения i, и как только он дойдет до конца значений i, затем перейдите к следующему j и начните снова. Он продолжает застревать в моей функции вставки, но я не могу понять, почему.

Вот код:

 Dim i As Integer
For j = 6 To 28
    For i = 2 To 4061
    If Range("A" amp; i).Value = Range("F" amp; i).Value Then
        If Range("B" amp; i).Value = Cells(1, j   5).Value Then
            Range("D" amp; i).Copy
            Range(Cells(i, j)).Paste
        End If
    End If
    Next i
Next j
 

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

1. Range У A нет Paste метода. Плюс тебе не стоит заворачиваться Cells Range . Range("D" amp; i).Copy Destination:=Cells(i, j)

2. для меня петли кажутся перевернутыми. Если вы поместите цикл j внутри первого, если в цикле i, он не будет зацикливаться для этой строки, если первое значение if равно false, экономя некоторое зацикливание.