Здравствуйте, Подскажите, реально ли реализовать цикличный макрос для изменения формул в группе строк (2-7; 8-13; и так далее до бесконечности) используя итерацию, для листа "Sponsored Products Campaigns"? Дело в том что мне необходимо в файле-примере сделать это для 200+ строк. Я мог бы вручную копировать строки и изменять формулу по "поиск+замена", но это слишком долго получается. Может кто-то подсказать макрос для этого? Благодарю!
Здравствуйте, Подскажите, реально ли реализовать цикличный макрос для изменения формул в группе строк (2-7; 8-13; и так далее до бесконечности) используя итерацию, для листа "Sponsored Products Campaigns"? Дело в том что мне необходимо в файле-примере сделать это для 200+ строк. Я мог бы вручную копировать строки и изменять формулу по "поиск+замена", но это слишком долго получается. Может кто-то подсказать макрос для этого? Благодарю!mishura08
Может макрос и не нужен,.. просто меняется не 1 столбец, а все ячейки в строках 2-7 например, и далее по цилку 8-13 и так далее. Пока что не понимаю как формулу эту правильно применить, но сейчас попробую. Спасибо во всяком случае за вариант.
И тогда если я протаскиваю вниз например столбец F на последнем листе то получаю там столбец полностью заполненный данными, которые там не должны быть. То есть эту формулу можно применить к только 1 столбцу ('D').. если я все правильно понял.
Может макрос и не нужен,.. просто меняется не 1 столбец, а все ячейки в строках 2-7 например, и далее по цилку 8-13 и так далее. Пока что не понимаю как формулу эту правильно применить, но сейчас попробую. Спасибо во всяком случае за вариант.
И тогда если я протаскиваю вниз например столбец F на последнем листе то получаю там столбец полностью заполненный данными, которые там не должны быть. То есть эту формулу можно применить к только 1 столбцу ('D').. если я все правильно понял.mishura08
Сообщение отредактировал Serge_007 - Вторник, 22.08.2023, 10:49
Я себе представляю эту задачу как: 1. Скопировать 2-7 строки и вставить их после 7 строки n количество раз, где n = максимальное количество строк в соседнем слева листе !минус 1 (с рассчетом на заголовки в первой строке). 2. Далее изменить символ $2 в формулах на итерацию n+1 в каждой (строки: 2-7; 8-13; 14-19) из шести следующих строк.
Но как это реализовать через VBA ума не приложу Помогите кто-нибудь :))
Я себе представляю эту задачу как: 1. Скопировать 2-7 строки и вставить их после 7 строки n количество раз, где n = максимальное количество строк в соседнем слева листе !минус 1 (с рассчетом на заголовки в первой строке). 2. Далее изменить символ $2 в формулах на итерацию n+1 в каждой (строки: 2-7; 8-13; 14-19) из шести следующих строк.
Но как это реализовать через VBA ума не приложу Помогите кто-нибудь :))mishura08
Ну, если ни у кого больше пока других идей нет, то моя примерно такая: [vba]
Код
Sub io() Dim rngSrc As Range Dim iMax As Long Dim i As Long Dim rng As Range Dim num As Long Dim cell As Range Dim arr
Set rngSrc = Range("C2:X7") iMax = 20
For i = 1 To iMax Set rng = rngSrc.Offset(i * 6) rngSrc.Copy rng '!!! добавил копирование !!! num = 2 + i For Each cell In rng.Cells If cell.HasFormula Then arr = Split(cell.Formula, "$") arr(2) = num cell.Formula = Join(arr, "$") End If Next cell Next i End Sub
[/vba]
Ну, если ни у кого больше пока других идей нет, то моя примерно такая: [vba]
Код
Sub io() Dim rngSrc As Range Dim iMax As Long Dim i As Long Dim rng As Range Dim num As Long Dim cell As Range Dim arr
Set rngSrc = Range("C2:X7") iMax = 20
For i = 1 To iMax Set rng = rngSrc.Offset(i * 6) rngSrc.Copy rng '!!! добавил копирование !!! num = 2 + i For Each cell In rng.Cells If cell.HasFormula Then arr = Split(cell.Formula, "$") arr(2) = num cell.Formula = Join(arr, "$") End If Next cell Next i End Sub
Что именно не срабатывает? Вы подготовительную работу провели по своему сообщению № 4? Растиражировали предварительно свои строки нужное количество раз? Мой макрос идёт в дополнение к Вашему сообщению № 4, он сам ничего не копирует, работает на уже имеющемся "материале" в ячейках.
[p.s.]Добавил копирующую строку в макрос сообщения № 5.
Что именно не срабатывает? Вы подготовительную работу провели по своему сообщению № 4? Растиражировали предварительно свои строки нужное количество раз? Мой макрос идёт в дополнение к Вашему сообщению № 4, он сам ничего не копирует, работает на уже имеющемся "материале" в ячейках.
[p.s.]Добавил копирующую строку в макрос сообщения № 5.Gustav