Я пытаюсь использовать определенный диапазон для циклического перехода через автоматический фильтр для копирования данных, а затем цикл через массив диапазонов, где я хочу вставить значение данных.Вложенные петли не работают, не удается выйти из внутреннего цикла
im работает с проблемами, поскольку внутренний цикл продолжает выполняться, и все диапазоны имеют одинаковые значения.
думать, что мне как-то нужно конденсировать это до 1 цикла, но для жизни меня не может понять, как заставить оба увеличиваться вместе в одном цикле?
Sub TrendTables()
Dim rng As Range, dailyTrendrng As Long, c As Range
Dim lastrow As Long
Dim aTrendRng(1 To 16) As Range
Set aTrendRng(1) = Sheets("Daily Trends").Range("A2")
Set aTrendRng(2) = Sheets("Daily Trends").Range("K2")
Set aTrendRng(3) = Sheets("Daily Trends").Range("A29")
Set aTrendRng(4) = Sheets("Daily Trends").Range("K29")
Set aTrendRng(5) = Sheets("Daily Trends").Range("A56")
Set aTrendRng(6) = Sheets("Daily Trends").Range("K56")
Set aTrendRng(7) = Sheets("Daily Trends").Range("A83")
Set aTrendRng(8) = Sheets("Daily Trends").Range("K83")
Set aTrendRng(9) = Sheets("Daily Trends").Range("A110")
Set aTrendRng(10) = Sheets("Daily Trends").Range("K110")
Set aTrendRng(11) = Sheets("Daily Trends").Range("A137")
Set aTrendRng(12) = Sheets("Daily Trends").Range("K137")
Set aTrendRng(13) = Sheets("Daily Trends").Range("A164")
Set aTrendRng(14) = Sheets("Daily Trends").Range("K164")
Set aTrendRng(15) = Sheets("Daily Trends").Range("A191")
Set aTrendRng(16) = Sheets("Daily Trends").Range("K191")
'clear ranges on Daily Trends tab
Set rng = Sheets("Daily Trends").Range("A2:S24, A29:S51, A56:S78, A83:S105, A110:S132, A137:S159, A164:S186, A191:S213")
rng.ClearContents
'turn off any previous filters
If Sheets("daily dump").AutoFilterMode Then
Sheets("daily dump").AutoFilter.Range.AutoFilter
End If
With Sheets("daily dump")
lastrow = .Cells(Rows.Count, "A").End(xlUp).Row
End With
Set c = Sheets("mapping").Range("BG1:BG16")
For Each c In Sheets("mapping").Range("BG1:BG16")
Sheets("daily dump").Range("A4:P" & lastrow).AutoFilter Field:=4, Criteria1:="=" & c.Value
Sheets("daily dump").Range("A4:P" & lastrow).SpecialCells(xlCellTypeVisible).Copy
For dailyTrendrng = LBound(aTrendRng) To UBound(aTrendRng)
aTrendRng(dailyTrendrng).PasteSpecial xlValues
Next
''''''this is where i want to go back to my first "FOR LOOP"
Next
End Sub
Правильно ли я понимаю, что вы собираетесь копировать диапазоны (по крайней мере, одну строку высокого и 16 столбцов (AP) шириной в одну ячейку?) Так как это выглядит так: или вы хотите вставить значения в соответствии с порядок, например, результат из ячейки A в диапазоне отфильтрования до 'aTrendRng (1)', от ячейки B до 'aTrendRng (2)' и т. д. И вы можете удалить строку 'Set c = Sheets (« mapping ») .Range ("BG1: BG16") ', поскольку c используется как экземпляр диапазона для каждого цикла. – Rufus
ищет вставить значения в порядке в соответствии с диапазонами, определенными массивом aTrendRng. – geoTheNeo
Я хочу вставить значения в соответствии с порядком определяемый массивом aTrendRng. aka цикл завершения для фильтрации диапазона, скопировать диапазон фильтрации, запустить внутренний цикл, чтобы определить, где вставлять значения, повторять внешнюю итерацию 1x, повторить внутренний цикл int eration 1x и т. д. – geoTheNeo