Оглавление
Когда нам нужно скопировать и вставить какие-либо данные в 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 и высказывайте свои предложения в поле для комментариев.