Vba: как вставить строку с форматированием


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

 Sub insertRowWithFormatting()

ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats

Application.CutCopyMode = False

End Sub

Этот конкретный макрос вставит строку под выбранную в данный момент ячейку с тем же форматированием, что и ячейки в выбранной в данный момент строке.

Примечание . Строка Application.CutCopyMode = False указывает, что режим вырезания и копирования должен быть отключен после выполнения макроса.

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

Связанный: Как вставить несколько строк с помощью VBA

Пример. Вставка строки с форматированием в VBA.

Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:

Допустим, мы хотим вставить строку ниже строки 2 с таким же форматированием.

Для этого мы можем создать следующий макрос:

 Sub insertRowWithFormatting()

ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats

Application.CutCopyMode = False

End Sub

Затем мы можем выбрать ячейку A2 и запустить этот макрос.

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что новая строка, которую мы вставили, имеет тот же формат, что и ячейки в строке 2, включая цвета ячеек и границу.

Также обратите внимание, что все остальные строки в существующем наборе данных просто были перемещены вниз.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как найти последнюю использованную строку
VBA: как подсчитать количество строк в диапазоне
VBA: как подсчитать количество используемых столбцов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *