Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос для изменения ячейки в формуле на +1 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос для изменения ячейки в формуле на +1
mishura08 Дата: Вторник, 22.08.2023, 09:36 | Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 40% ±

2021
Здравствуйте,
Подскажите, реально ли реализовать цикличный макрос для изменения формул в группе строк (2-7; 8-13; и так далее до бесконечности) используя итерацию, для листа "Sponsored Products Campaigns"? :'(
Дело в том что мне необходимо в файле-примере сделать это для 200+ строк. Я мог бы вручную копировать строки и изменять формулу по "поиск+замена", но это слишком долго получается.
Может кто-то подсказать макрос для этого?
Благодарю!
К сообщению приложен файл: EXPANDING.xlsx (63.9 Kb)


Сообщение отредактировал mishura08 - Вторник, 22.08.2023, 09:37
 
Ответить
СообщениеЗдравствуйте,
Подскажите, реально ли реализовать цикличный макрос для изменения формул в группе строк (2-7; 8-13; и так далее до бесконечности) используя итерацию, для листа "Sponsored Products Campaigns"? :'(
Дело в том что мне необходимо в файле-примере сделать это для 200+ строк. Я мог бы вручную копировать строки и изменять формулу по "поиск+замена", но это слишком долго получается.
Может кто-то подсказать макрос для этого?
Благодарю!

Автор - mishura08
Дата добавления - 22.08.2023 в 09:36
китин Дата: Вторник, 22.08.2023, 09:49 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7021
Репутация: 1075 ±
Замечаний: 0% ±

Excel 2007;2010;2016
А может без макроса обойдемся?
Код
=ДВССЫЛ("Preparing!$A"&"$"&ЦЕЛОЕ((СТРОКА(A1)-1)/6)+2)
К сообщению приложен файл: expanding_22.xlsx (65.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеА может без макроса обойдемся?
Код
=ДВССЫЛ("Preparing!$A"&"$"&ЦЕЛОЕ((СТРОКА(A1)-1)/6)+2)

Автор - китин
Дата добавления - 22.08.2023 в 09:49
mishura08 Дата: Вторник, 22.08.2023, 10:01 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 40% ±

2021
Может макрос и не нужен,.. просто меняется не 1 столбец, а все ячейки в строках 2-7 например, и далее по цилку 8-13 и так далее. Пока что не понимаю как формулу эту правильно применить,
но сейчас попробую. Спасибо во всяком случае за вариант.

И тогда если я протаскиваю вниз например столбец F на последнем листе то получаю там столбец полностью заполненный данными, которые там не должны быть.
То есть эту формулу можно применить к только 1 столбцу ('D').. если я все правильно понял.


Сообщение отредактировал Serge_007 - Вторник, 22.08.2023, 10:49
 
Ответить
СообщениеМожет макрос и не нужен,.. просто меняется не 1 столбец, а все ячейки в строках 2-7 например, и далее по цилку 8-13 и так далее. Пока что не понимаю как формулу эту правильно применить,
но сейчас попробую. Спасибо во всяком случае за вариант.

И тогда если я протаскиваю вниз например столбец F на последнем листе то получаю там столбец полностью заполненный данными, которые там не должны быть.
То есть эту формулу можно применить к только 1 столбцу ('D').. если я все правильно понял.

Автор - mishura08
Дата добавления - 22.08.2023 в 10:01
mishura08 Дата: Вторник, 22.08.2023, 10:35 | Сообщение № 4
Группа: Проверенные
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 40% ±

2021
Я себе представляю эту задачу как:
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
Дата добавления - 22.08.2023 в 10:35
Gustav Дата: Вторник, 22.08.2023, 11:10 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2766
Репутация: 1140 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Ну, если ни у кого больше пока других идей нет, то моя примерно такая:
[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]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 22.08.2023, 11:44
 
Ответить
СообщениеНу, если ни у кого больше пока других идей нет, то моя примерно такая:
[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]

Автор - Gustav
Дата добавления - 22.08.2023 в 11:10
mishura08 Дата: Вторник, 22.08.2023, 11:25 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 40% ±

2021
Спасибо что откликнулись
Не срабатывает у меня почему-то :(


Сообщение отредактировал Serge_007 - Вторник, 22.08.2023, 11:52
 
Ответить
СообщениеСпасибо что откликнулись
Не срабатывает у меня почему-то :(

Автор - mishura08
Дата добавления - 22.08.2023 в 11:25
Gustav Дата: Вторник, 22.08.2023, 11:32 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2766
Репутация: 1140 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Не срабатывает у меня почему-то

Что именно не срабатывает? Вы подготовительную работу провели по своему сообщению № 4? Растиражировали предварительно свои строки нужное количество раз? Мой макрос идёт в дополнение к Вашему сообщению № 4, он сам ничего не копирует, работает на уже имеющемся "материале" в ячейках.

[p.s.]Добавил копирующую строку в макрос сообщения № 5.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 22.08.2023, 11:46
 
Ответить
Сообщение
Не срабатывает у меня почему-то

Что именно не срабатывает? Вы подготовительную работу провели по своему сообщению № 4? Растиражировали предварительно свои строки нужное количество раз? Мой макрос идёт в дополнение к Вашему сообщению № 4, он сам ничего не копирует, работает на уже имеющемся "материале" в ячейках.

[p.s.]Добавил копирующую строку в макрос сообщения № 5.

Автор - Gustav
Дата добавления - 22.08.2023 в 11:32
mishura08 Дата: Вторник, 22.08.2023, 11:58 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 40% ±

2021
Благодарю, все работает!


Сообщение отредактировал Serge_007 - Вторник, 22.08.2023, 11:59
 
Ответить
СообщениеБлагодарю, все работает!

Автор - mishura08
Дата добавления - 22.08.2023 в 11:58
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!