Vba: как вставить значения и сохранить форматирование
Вы можете использовать следующий синтаксис в VBA, чтобы скопировать диапазон ячеек и вставить значения и исходное форматирование в новое место:
Sub PasteWithFormatting()
Range(" A1:C11 ").Copy
Range(" A13 ").PasteSpecial Paste:=xlPasteAllUsingSourceTheme
Application.CutCopyMode = False
End Sub
Этот конкретный макрос скопирует ячейки в диапазоне A1:C11 и вставит значения ячеек с их форматированием в диапазон, начиная с ячейки A13 .
Примечание . Строка Application.CutCopyMode = False указывает, что режим вырезания и копирования должен быть отключен после запуска макроса.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: вставка значений и продолжение форматирования с помощью VBA
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Допустим, мы хотим скопировать и вставить все значения в диапазоне A1:C11 в новое место, сохранив форматирование.
Для этого мы можем создать следующий макрос:
Sub PasteWithFormatting()
Range(" A1:C11 ").Copy
Range(" A13 ").PasteSpecial Paste:=xlPasteAllUsingSourceTheme
Application.CutCopyMode = False
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что исходные значения ячеек были вставлены с их форматированием в диапазон ячеек, начиная с ячейки A13 .
Примечание . Полную документацию по методу VBA PasteSpecial можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: Как вставить только значения без форматирования
VBA: как скопировать видимые строки на другой лист
VBA: скопировать строки на другой лист на основе критериев