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: как подсчитать количество используемых столбцов