VBA Paste Special для копирования значений и форматов в Excel (9 примеров) -...

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

Когда нам нужно скопировать и вставить какие-либо данные в Microsoft Excel, у нас есть возможность использовать различные ярлыки и инструменты ленты Excel. Excel VBA Макросы также имеют такую возможность, а не опции рабочей книги. Мы обсудим следующее VBA Paste Special значения и форматы в Excel.

Скачать Практическое пособие

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

Значения и форматы с использованием PasteSpecial.xlsm

9 примеров копирования значений и форматов с помощью Paste Special в Excel VBA

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

Для этого мы рассмотрим приведенный ниже набор данных.

1. Применение InputBox в VBA Paste Special для копирования значений и форматов

В этом примере мы будем использовать опцию InputBox для Специальная вставка .

Шаг 1:

  • Перейти к Разработчик вкладка.
  • Нажмите на Макрос записи .
  • Установите Excel_Paste_Special_1 как Имя макроса .
  • Затем нажмите OK .

Шаг 2:

  • Теперь нажмите кнопку Макросы командование.
  • Выберите Макро а затем нажмите Шаг в .

Шаг 3:

  • Скопируйте и вставьте следующий код в командный модуль.
 Sub Excel_Paste_Special_1() Dim Copy_Cell As Range, Paste_Cell As Range xTitleId = "Salary_Sheet" Set Copy_Cell = Application.Selection Set Copy_Cell = Application.InputBox("Select Range to Copy :", xTitleId, Copy_Cell.Address, Type:=8) Set Paste_Cell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) Copy_Cell.Copy Paste_Cell.Parent.Activate Paste_Cell.PasteSpecialxlPasteValuesAndNumberFormats Paste_Cell.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub 

Шаг 4:

  • Нажмите F5 чтобы запустить код.
  • Появится новое диалоговое окно. Выберите диапазон источников в этом окне.
  • Затем нажмите OK .

Шаг 5:

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

Теперь посмотрите на набор данных.

Все данные копируются со значениями и форматами, используя VBA Paste Special .

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

2. Вставка диапазона ячеек со значениями и форматами с помощью xlPasteAllUsingSourceTheme в VBA Paste Special

Мы вставим диапазон ячеек непосредственно на VBA код в этом разделе.

Шаг 1:

  • Нажмите Alt+F11 чтобы войти в командный модуль.
  • Поместите следующий код в командный модуль.
 Sub Excel_Paste_Special_2() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Теперь нажмите F5 чтобы запустить код.

Это xlPasteAllUsingSourceTheme команда копирует точную копию исходных данных.

Читать далее: Excel VBA: копирование значения ячейки и вставка в другую ячейку

3. Использование переменной VBA для вставки диапазона со значениями и форматами с помощью функции вставки

Мы покажем использование переменных в программе VBA Paste Special код здесь.

Шаг 1:

  • Сначала войдите в командный модуль, нажав кнопку Alt+F11 .
  • Напишите приведенный ниже код в командном модуле.
 Sub Excel_Paste_Special_3() Dim source_rng As Range, paste_rng As Range Set source_rng = Range("B4:C9") Set paste_rng = Range("E4") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Нажмите F5 и запустите код.

Читать далее: Excel VBA: копирование диапазона в другую рабочую книгу

4. Используйте xlPasteValues и xlPasteFormats для копирования значений и форматов в другой лист, сохраняя форматы неизменными

Вышеперечисленные методы использовались для копирования и вставки данных в один и тот же лист. Теперь мы покажем, как использовать функцию VBA Paste Special для разных листов.

Шаг 1:

  • Войдите в командный модуль, нажав кнопку Alt+F11 и скопируйте на него следующий код.
 Private Sub Excel_Paste_Special_4() Application.ScreenUpdating = False Dim source_rng As Worksheet Dim paste_rng As Worksheet Set source_rng = Worksheets("Data_Set") Set paste_rng = Worksheets("Different_Sheet") Set Destination = paste_rng.Range("B2") source_rng.Range("B2:C9").Copy Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormatsApplication.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Шаг 2:

  • Нажмите F5 чтобы запустить код.

Мы видим, что данные Data_Set копируется в Разные_листы .

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

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

  • Как скопировать несколько ячеек на другой лист в Excel (9 методов)
  • Разница между Paste и Paste Special в Excel
  • Excel VBA для копирования данных из другой рабочей книги без открытия
  • Как копировать и вставлять в Excel с сохранением размера ячеек (7 примеров)
  • Копирование и вставка значений в следующую пустую строку с помощью Excel VBA (3 примера)

5. Используйте xlPasteFormats для вставки только форматов

В предыдущих методах мы копировали данные целиком и вставляли их без изменений. Но в этом разделе мы скопируем только формат данных.

Шаг 1:

  • Перейдите в командный модуль, нажав кнопку Alt+F11 .
  • Скопируйте и вставьте приведенный ниже код в командный модуль.
 Sub Excel_Paste_Special_5() Range("B2:C9").Copy Range("E2").PasteSpecial xlPasteFormats End Sub 

Шаг 2:

  • Теперь нажмите кнопку F5 и запустите код.

Посмотрите на набор данных. Копируются только форматы, значений здесь нет.

Читать далее: Как копировать и вставлять в Excel без изменения формата

6. Используйте xlPasteValues для вставки только значений

Мы можем копировать значения только с помощью VBA Paste Special .

Шаг 1:

  • Нажмите Alt+F11 чтобы войти в командный модуль.
  • Напишите следующий код на командном модуле.
 Sub Excel_Paste_Special_6() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteValues End Sub 

Шаг 2:

  • Нажмите на F5 и запустите код.

Обратите внимание на набор данных. Здесь копируются только значения. В этом методе не копируются форматы.

Читать далее: Как использовать VBA для вставки только значений без форматирования в Excel

7. копирование и вставка всего содержимого одной ячейки

В предыдущих разделах мы копировали диапазон данных. Здесь мы скопируем только одну ячейку.

Шаг 1:

  • Теперь нажмите Alt+F11 и введите командный модуль.
  • Введите следующий код на модуле.
 Sub Excel_Paste_Special_7() Range("B4").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Теперь нажмите кнопку F5 чтобы запустить код.

Мы видим, что здесь копируется одна ячейка, а не диапазон.

Читать далее: Формула для копирования и вставки значений в Excel (5 примеров)

8. копирование и вставка всех атрибутов определенного столбца с помощью VBA

Подобно отдельной ячейке, мы можем скопировать один столбец в наборе данных.

Шаг 1:

  • Просто нажмите кнопку Alt+F11 чтобы войти в командный модуль.
  • Напишите приведенный ниже код в модуле.
 Sub Excel_Paste_Special_8() Dim source_rng As Range, paste_rng As Range Set source_rng = Columns("C") Set paste_rng = Columns("E") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Запустите код, нажав кнопку F5 .

Здесь мы видим, что Колонка B копируется в Колонка E .

Читать далее: [Исправлено]: Копирование и вставка правой кнопкой мыши не работает в Excel (11 решений)

9. Копирование и вставка всех атрибутов строки с помощью Excel VBA

Аналогично, мы можем скопировать одну строку с помощью функции Специальная вставка .

Шаг 1:

  • Нажмите на Alt+F11 чтобы войти в модуль командной строки.
  • Скопируйте следующий код в командный модуль.
 Sub Excel_Paste_Special_9() Dim source_rng As Range, paste_rng As Range Set source_rng = Rows("4") Set paste_rng = Rows("11") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Шаг 2:

  • Запустите код, нажав кнопку F5 .

Вот, Ряд 4 копируется в Ряд 11 .

Читать далее: Как скопировать несколько строк в Excel с помощью макроса (4 примера)

Заключение

В этой статье мы объяснили 9 методы VBA Вставка специальных значений и форматов в Excel. Надеюсь, это удовлетворит ваши потребности. Пожалуйста, загляните на наш сайт Exceldemy.com и высказывайте свои предложения в поле для комментариев.

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