Глядя, чтобы зациклить макрос, который я записал, пропуская строки и заканчивая на основе условия
385
plshelpmewithexcel
Извиняюсь за неосведомленный вопрос, но я искал макросы все утро, чтобы помочь мне с задачей, которую я выполняю, и я не нашел ответы, которые мне нужны, с помощью поиска в Google. Я использую Windows 10 и Excel 2016. Вот макрос, который я записал:
По сути, я объединяю еженедельные строки в две недели. Я делал это до того, как использовал сводные таблицы и getpivotdata, но в этот раз я надеялся на более элегантное решение. Я хотел бы, чтобы макрос зацикливался после его завершения, перемещаясь вниз на 3 строки, чтобы работать на следующей паре недель после этого (поэтому в этом примере, если новая строка, которую я создал, теперь является строкой 51 после удаления отдельных еженедельных строк, я бы как бы перейти к строке 54 и вставить новую строку над ней, чтобы начать работу над парами строк недели 52 и 53).
Я не знаю, как зациклить макрос, чтобы он спрыгивал строки в каждом цикле. Я также хотел бы сделать макрос остановленным условно, например, при изменении значения в столбце А (у меня есть большой лист, отсортированный в алфавитном порядке с именами, содержащими данные раз в две недели, и я хотел бы, чтобы макрос останавливался в конце каждого имя, чтобы я мог настроить объединение периода оплаты и запустить его снова для нового имени). В качестве альтернативы, знание того, как заставить его работать определенное количество раз (скажем, 30), было бы хорошей альтернативой.
Любая помощь по любому из этих вопросов будет принята с благодарностью. Снова извиняюсь за то, что не знаком с макросами и VBE.
1 ответ на вопрос
0
scenography
Некоторая помощь с циклами в том, как повторять задачи с кодом VBA с помощью циклов . Самый простой вид цикла будет For i = 1 to 30в начале и Next iв конце.
Если у вас есть другие вопросы, попробуйте свойство Offset :
Чтобы выбрать ячейку, которая находится на три строки ниже текущей ячейки, Selection.Offset(3, 0).Select
Чтобы остановить макрос, если ячейка отличается от ячейки тремя строками выше, If Selection.Value <> Selection.Offset(-3, 0).Value Then Exit Sub
Запись макроса - отличное начало. Когда вы лучше познакомитесь с кодом VBA, вы, вероятно, объедините строки, которые заканчиваются .Selectи начинаются с Selection..