У меня есть следующий макрос в Excel

Sub IHIAddWeeks()
'
' IHIAddWeeks Macro
' ihi-table
'
' Keyboard Shortcut: Ctrl+Shift+I
'
    ActiveCell.FormulaR1C1 = "=YEAR(RC[1])&WEEKNUM((RC[1]))"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A5"), Type:=xlFillDefault

End Sub

После выглядит так:

Теперь я автозаполнения до A5, потому что A5 является последним непустым сырье. Но это может измениться. Как я могу сказать: "Автозаполнение до последнего непустого столбца B"?

Далее я хотел бы вставить необработанный после A2, если A3> A2+1, и пусть новый A3 = A2+1, а затем сравнивать A3 с A4 и так далее, пока столбец B не станет пустым.

Можно ли помочь?

в конце таблицы должна выглядеть так

2 ответа2

2

Как я могу сказать: "Автозаполнение до последнего непустого столбца B"?

Лучший способ, если вы используете хотя бы Excel 2010 (возможно, 2007 год подойдет), - это превратить таблицу в таблицу Excel перед запуском макроса. Затем, когда вы запустите макрос, он будет автоматически заполнен до конца таблицы. Однако это будет работать только в том случае, если столбец был пуст до запуска макроса.

Я не понимаю второй вопрос, я боюсь. Вы хотите сказать, что вам нужна формула =R[-1]C+1 если новая ячейка в противном случае была бы через 1 неделю после предыдущей строки? Если так, я не понимаю, почему вы захотите сделать вещи такими сложными.

Или вы хотите сказать, что хотите, чтобы ячейка была пустой, если она такая же, как в предыдущей строке?

0

Итак, немного более изумительный способ получить ответ (не могу запустить это сам сейчас, извините)

Включите рекордер макросов. Выберите верхнюю часть столбца рядом с нужным столбцом (убедитесь, что в вашем коде это не относительно). Ctr+down, стрелка над (убедитесь, что относительные ссылки включены) - ctr+shift+up, чтобы выделить все это, затем alt+H+F+I+D - это автоматически заполняет уравнение до самого низа.

Это не настоящий код, но он описывает, как его получить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .