2016-03-01 2 views
0

мне нужно код VBA, чтобы сделать это:Macro скопировать строку, вставьте его в следующую пустую строку и очистить содержимому

Скопируйте строку

вставить скопированную строку в следующую пустую строку

очистить содержимое (не удаляя формулу или проверку данных, находящуюся в ячейках).

В настоящее время я использую это, но он только вставляет строку непосредственно под активной ячейкой и не очищает содержимое.

Sub InsertCopyRow() 

    ActiveCell.Offset(1,0).EntireRow.Insert 
    ActiveCell.EntireRow.Copy ActiveCell.Offset(1,0).EntireRow 

End Sub 

Спасибо!

+0

Когда вы говорите, «не удаляя формулу», вы хотите сказать «форматирование» (красный/синий и т. д.) или действительно формула (= A1 + C5 и т. д.)? – vacip

ответ

0

Два решения, выбрать понравившийся:

Используйте Cut вместо копирования:

Sub InsertCopyRow() 

ActiveCell.Offset(1, 0).EntireRow.Insert 
ActiveCell.EntireRow.Cut ActiveCell.Offset(1, 0).EntireRow 

End Sub 

Или очистить содержимое исходной строки после копирования:

Sub InsertCopyRow() 

ActiveCell.Offset(1, 0).EntireRow.Insert 
ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow 
ActiveCell.EntireRow.ClearContents 

End Sub 
+0

Чтобы уточнить, скопированная строка должна оставаться на месте, со всеми значениями ячеек и форматированием/формулой. Спасибо – Gussio

+0

ОК, тогда я не понимаю. В вашем вопросе вы говорите «очистите содержимое». Где вы хотите очистить контент? Итак, вы не хотите вставлять новую строку? Вы хотите, чтобы код нашел следующую пустую строку? Можете ли вы добавить пример на свой вопрос? – vacip

Смежные вопросы