Как применить VBA PasteSpecial и сохранить исходное форматирование в Excel

  • Поделись Этим
Hugh West

Однако бывают ситуации, когда мы хотим скопировать не только текст. Мы можем скопировать все возможности Excel, такие как условное форматирование, проверка данных, форматирование типа данных и эстетические функции, такие как границы и цвет ячеек. Возможно, вы восхищаетесь цветовой схемой вашего коллеги, но вам нужны статичные данные, или, возможно, формулы фантастические, но вам не нравится цветовая схема.В этом учебном пособии мы покажем. VBA PasteSpecial и сохранить исходное форматирование в Excel.

Скачать Рабочую тетрадь для практических занятий

Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.

VBA PasteSpecial.xlsm

4 простых примера применения VBA PasteSpecial и сохранения исходного форматирования в Excel

Мы продемонстрируем четыре примера использования специальной вставки в VBA сохраняя исходный формат в разделах ниже. Вот пример набора данных, который мы будем использовать для копирования и вставки.

1. Добавление поля ввода с помощью VBA PasteSpecial и сохранение исходного форматирования в Excel

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

Шаг 1:

  • Во-первых, нажмите Альт + F11 начать Макро .
  • Затем нажмите на Вставка, выбирать Модуль вариант.

Шаг 2:

  • Вставьте следующий код VBA.
 Sub PasteSpecialKeepFormat() 'объявляем CopyCell и PasteCell как переменные диапазона Dim CopyCell As Range, PasteCell As Range 'задаем имя поля ввода xTitleId = "ExcelWIKI" 'устанавливаем диапазон копирования, который будет выбран из рабочего листа Set CopyCell = Application.Selection 'устанавливаем поле ввода, чтобы взять диапазон для копирования Set CopyCell = Application.InputBox("Select Range to Copy :", xTitleId, CopyCell.Address,Type:=8) 'Установите поле ввода, чтобы взять диапазон для вставки Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) 'Команда для копирования выбранного диапазона CopyCell.Copy 'Команда для вставки диапазона PasteCell.Parent.Activate 'Команда для вставленных ячеек, чтобы сохранить исходное форматирование PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Шаг 3:

  • Сохранить программу и нажмите F5 чтобы запустить его.
  • После появления 'ExcelWIKI' выберите диапазон $B$4:$C$11 .
  • Нажмите OK .

Шаг 4:

  • Выберите любую пустую ячейку для вставки.
  • Затем нажмите OK.

  • Поэтому, сохранив формат, вы получите ценность пасты.

Читать далее: Разница между Paste и Paste Special в Excel

2. Применение VBA PasteSpecial для выбора диапазона и сохранения исходного форматирования в Excel

В VBA Вы также можете указать диапазоны и копировать и вставлять их с сохранением исходного форматирования. Для этого выполните описанные ниже действия.

Шаг 1:

  • Нажмите Альт + F11 открыть Макро .
  • Создайте новый модуль из Вставка
  • Просто вставьте следующее VBA код для диапазона B4:C11 .
 Sub pasteSpecial_KeepFormat() 'выберите диапазон для копирования Range("B4:C11").Copy 'выберите ячейку для вставки 'команда для вставкиСпециальное сохранение формата Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Наконец, сохраните программу и нажмите кнопку F5 запустить. В результате вы увидите изменения, как показано на рисунке ниже.

Подробнее: Специальная функция VBA Paste для копирования значений и форматов в Excel (9 примеров)

Похожие чтения

  • Код VBA для сравнения двух листов Excel и копирования различий
  • Excel VBA: копирование значения ячейки и вставка в другую ячейку
  • Как скопировать несколько ячеек на другой лист в Excel (9 методов)
  • Excel VBA: копирование диапазона в другую рабочую книгу
  • [Исправлено]: Копирование и вставка правой кнопкой мыши не работает в Excel (11 решений)

3. Объявление переменной с помощью VBA PasteSpecial и сохранение исходного форматирования в Excel

Объявляя переменные и устанавливая переменные в различные диапазоны, выполните следующие действия, чтобы вставитьSpecial в VBA .

Шаг 1:

  • Прежде всего, нажмите Альт + F11 открыть Макрос VBA .
  • Выберите новый Модуль .
  • Затем вставьте следующее Код VBA .
 Sub Copy_Paste_Special() 'Объявление переменных Dim copy_Rng As Range, Paste_Range As Range 'Команда для копирования диапазона Set copy_Rng = Range("B4:C11") 'Команда для вставки диапазона Set Paste_Range = Range("E4") copy_Rng.Copy 'Вставляем команду в pasteSpecial с сохранением формата Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • После сохранения программы нажмите F5 бежать.
  • Поэтому скопированный диапазон будет вставлен с сохранением исходного форматирования, как и раньше.

Читать далее: Как использовать VBA PasteSpecial для формул и форматов в Excel (3 способа)

4. использование VBA PasteSpecial и сохранение исходного форматирования в разных рабочих листах Excel

В этой части мы поговорим об очень важном методе. Потому что мы рассмотрим, как использовать PasteSpecial в VBA в нескольких рабочих книгах. Например, мы скопируем из 'Sheet4' и вставьте его в 'Sheet5 ,' как показано в следующих шагах.

Шаг 1:

  • Чтобы открыть Макрос VBA , нажмите Альт + F11
  • Из Вставка выберите вкладку Модуль.
  • Затем вставьте следующее VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Объявление переменных Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Установка назначения диапазона для переменной Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'Установка назначения вставленных ячеек 'Для ячейки E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Команда для копирования диапазона copyRng.Range("B4:C11").Copy 'Команда для вставки диапазона Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Шаг 2:

  • Чтобы запустить программу, нажмите F5 после сохранения программы.
  • Таким образом, вы получите вставленное значение в лист 5 с сохранением исходного формата.

Читать далее: Как использовать специальную команду "Вставить" в Excel (5 подходящих способов)

Заключение

Подводя итог, я надеюсь, что теперь вы знаете, как использовать Excel VBA в Paste Special Keep Source Formatting. Всем этим стратегиям следует обучить ваши данные и использовать их. Изучите учебник по практике и примените полученные знания. Мы мотивированы продолжать читать подобные лекции благодаря вашей важной поддержке.

Пожалуйста, не стесняйтесь обращаться к нам, если у вас возникли вопросы. Поделитесь своими мыслями в поле для комментариев ниже.

На ваши вопросы в кратчайшие сроки ответит Exceldemy персонал.

Оставайтесь с нами и продолжайте учиться.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.