Макрос для копирования и вставки из одного рабочего листа в другой (15 методов)

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

Оглавление

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

Скачать рабочую тетрадь

Вы можете скачать бесплатную практическую рабочую тетрадь Excel отсюда.

Копирование и вставка из одного рабочего листа в другой.xlsm

15 способов копирования и вставки данных с одного рабочего листа на другой в Excel с помощью VBA

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

Выше приведен набор данных, который будет рассматриваться в этой статье в качестве примера.

1. Встраивание макроса VBA для копирования и вставки диапазона данных из одного рабочего листа в другой

Шаги к копирование и вставка диапазона данных из одного рабочего листа в другой с помощью VBA описаны ниже.

Шаги:

  • В начале нажмите Alt + F11 на клавиатуре или перейдите на вкладку Разработчик -> Visual Basic открыть Редактор Visual Basic .

  • Во всплывающем окне кода в строке меню нажмите Вставка -> Модуль .

  • Сейчас, скопируйте следующий код и паста в кодовое окно .
 Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub 

Теперь ваш код готов к выполнению.

Этот фрагмент кода будет скопировать диапазон от B2 до F9 из названный лист Набор данных и вставьте те, что в B2 Диапазон в CopyPaste именной лист .

  • Затем нажмите F5 на клавиатуре или в строке меню выберите Run -> Run Sub/UserForm Вы также можете просто нажать на маленький значок Play в строке подменю, чтобы запустить макрос.

Посмотрите на следующее изображение.

Наконец, все данные из Набор данных лист теперь скопирован в CopyPaste лист в нашей рабочей книге Excel.

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

2. Макрос VBA для копирования и вставки данных из одного активного рабочего листа в другой в Excel

В предыдущем разделе мы не требовали активации рабочего листа, но в этом разделе мы узнаем, как копирование и вставка данных в активный рабочий лист .

Шаги:

  • Так же, как и раньше, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода, скопируйте следующий код и паста это.
 Sub CopyPasteToAnotherActiveSheet() 'Скопируйте данные из исходного листа Sheets("Dataset").Range("B2:F9").Copy 'Активируйте лист назначения Sheets("Paste").Activate 'Выберите диапазон назначения Range("B2").Select 'Вставьте в лист назначения ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте код, как показано выше, и увидеть результат на следующем изображении.

На этот раз все данные из Набор данных лист теперь скопирован в Паста лист, который мы активировали перед копированием данных.

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

3. Копирование и вставка одной ячейки из одного рабочего листа в другой в Excel с помощью макроса VBA

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

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

Мы посмотрим, как мы можем скопировать и вставить одну ячейку в другой лист в Excel с VBA .

Шаги:

  • Как показано выше, открытые Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода, скопируйте следующий код и паста
 Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот фрагмент кода и обратите внимание на следующее изображение.

Эти отдельные данные " Скопируйте эту ячейку " в Ячейка B4 в Набор данных лист теперь скопирован в CopyRange лист в Клетка B2 .

Читать далее: Excel VBA для копирования только значений в место назначения (макрос, UDF и UserForm)

4. Вставка скопированных данных с одного рабочего листа на другой с помощью метода PasteSpecial в макросе Excel

Вы можете копировать данные из одного рабочего листа и вставлять их различными способами с помощью Excel PasteSpecial метод с VBA Шаги для этого приведены ниже.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот фрагмент кода.

Посмотрите на рисунок выше. Данные из Набор данных лист теперь переносится в PasteSpecial лист в Excel.

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

5. Макрос для копирования и вставки данных ниже последней ячейки из одного рабочего листа в другой в Excel

У нас уже есть некоторые данные в Набор данных лист (показанный в разделе введения). Теперь посмотрите на предстоящую часть этого раздела. Теперь у нас есть некоторые новые данные в другом листе с именем Последняя ячейка .

Мы хотим сделать следующее. данные для конкретной копии (ячейки B5 - F9) из Набор данных лист и паста те, кто в ниже последней ячейки этого Последняя ячейка лист.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Во-вторых, скопируйте следующий код и паста его в окно кода.
 Sub CopyPasteBelowTheLastCell() 'Установите переменные Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Установите переменные для исходного и целевого листов Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Найдите последнюю использованную строку в исходном листе на основе данных в столбце B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Найдите первую пустую строку в целевом листе на основе данных в столбце B 'Свойство Offset служит для перемещения скопированных данных на 1 строку вниз iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Скопируйте данные из источника и вставьте в целевой лист wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот код. Посмотрите на изображение ниже.

Здесь только выбранные данные из Набор данных лист сейчас скопированный ниже последней ячейки в Последняя ячейка лист в Excel.

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

6. Макрос VBA для очистки сначала рабочего листа, а затем копирования и вставки в другой рабочий лист

Что делать, если в существующем листе содержатся неправильные данные, и вы хотите извлечь из него исходные данные.

Посмотрите на следующее изображение. очистить данные из Чистый диапазон лист и сохранить здесь данные из Набор данных лист с помощью VBA код.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Во-вторых, скопируйте следующий код и паста его в окно кода.
 Sub ClearAndCopyPasteData() 'Установите переменные Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Установите переменные для исходного и целевого листов Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Найдите последнюю использованную строку в исходном листе на основе данных в столбце B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Найдите первую пустую строку в целевом листе на основе данных в столбце B 'Свойство Offset служит для перемещения скопированных данных на 1 строку вниз iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Очистите данные из целевого диапазона wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Скопируйте данные из источника и вставьте в место назначенияwsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте Посмотрите на следующее изображение.

Предыдущие данные в Чистый диапазон лист теперь заменен данными из Набор данных лист.

Читать далее: Макрос для копирования данных из одной рабочей книги в другую на основе критериев

7. Макрос для копирования и вставки данных с одного рабочего листа на другой с помощью функции Range.Copy

Теперь мы узнаем VBA код о том, как копировать и вставлять данные из одного рабочего листа в другой с Диапазон.Копия функция в Excel.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Во-вторых, скопируйте следующий код и паста его в окно кода.
 Sub CopyWithRangeCopyFunction() 'Установите переменные Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Установите переменные для исходного и целевого листов Set wsSource = Worksheets("Набор данных") Set wsTarget = Worksheets("Диапазон копирования") 'Скопируйте данные из источника и вставьте в место назначения Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот фрагмент кода и посмотрите на следующее изображение.

Мы успешно продублировали данные из Набор данных лист в Диапазон копирования лист с Диапазон.Копия функция.

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

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

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

8. внедрение макрокода для дублирования данных с одного рабочего листа на другой с помощью свойства USEDRANGE

На этот раз мы узнаем VBA код о том, как копировать и вставлять данные из одного рабочего листа в другой с UsedRange атрибут в Excel.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyWithUsedRange() 'Установите переменные Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Установите переменные для исходного и целевого листов Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Скопируйте данные из источника и вставьте в место назначения Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот фрагмент кода.

Как видно на рисунке выше, мы успешно скопировали и вставили данные из файла Набор данных лист в UsedRange лист с USEDRANGE собственность.

Читать далее: Как скопировать одно и то же значение в несколько ячеек в Excel (4 метода)

9. Макрос VBA для копирования и вставки выбранных данных с одного листа на другой в Excel

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

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyPasteSelectedData() 'Установите переменные Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Установите переменные для листов источника и назначения Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Скопируйте данные из источника wsSource.Range("B4:F7").Copy 'Вставьте данные в место назначения Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

Теперь ваш код готов к выполнению.

Этот код будет копировать только диапазон от B4 до F7 из Набор данных лист и вставьте те, что в B2 Диапазон в ВставитьВыбранное именной лист .

  • Следующий, Запускайте этот код.

Наконец, только отобранные данные из Набор данных лист успешно скопированы и вставлены в Вставить выбранное лист в рабочей книге Excel.

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

10. Код макроса для дублирования данных с одного рабочего листа на другой в первой пустой строке

Здесь мы рассмотрим, как данные копирования из Набор данных лист и паста те, кто в первая пустая ячейка в другом рабочем листе в Excel с VBA .

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот кусок кода.

См. изображение выше. Лист13 был полностью пустым. В результате, выполняемый код вставил скопированные данные из Набор данных лист в самом первая ячейка в Лист13 лист в Excel.

Читать далее: Копирование и вставка значений в следующую пустую строку с помощью Excel VBA (3 примера)

11. Встраивание VBA для копирования и вставки автофильтрованных данных с одного листа Excel на другой

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

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте Этот код. Только та строка, в которой есть " Дин " в нем, будет отфильтрован и скопирован в другой лист.

Заметьте на изображении выше. Только отфильтрованные данные " Дин " из B Колонна теперь копируется и вставляется в Лист15 лист.

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

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

  • Как автофильтровать и копировать видимые строки с помощью Excel VBA
  • Копирование уникальных значений на другой рабочий лист в Excel (5 методов)
  • Как копировать слитые и отфильтрованные ячейки в Excel (4 метода)
  • Run Time Error 1004: PasteSpecial Method of Range Class Failed
  • Как вставить ссылку и транспонировать в Excel (8 быстрых способов)

12. Вставьте строку в нижнюю часть диапазона, сохранив скопированную формулу из верхнего диапазона

Когда вы хотите копировать значение и сохранять формулу внутри него вставляя его в другой ряд, затем с помощью VBA кода вы сможете легко выполнить задание.

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот код и посмотрите на изображение ниже.

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

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

13. VBA для копирования данных с одного листа на другой лист в другой открытой, но не сохраненной рабочей книге

Обратите внимание на название нашей рабочей книги для примера, Рабочая тетрадь по источникам Мы скопируем данные из Набор данных лист из этой рабочей книги и вставьте его в другой рабочий лист в другой рабочей книге с именем Рабочая тетрадь по предназначению то есть открыты, но еще не сохранены .

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyOneFromAnotherNotSaved() Workbooks("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот код.

Данные из Набор данных лист в Рабочая тетрадь по источникам теперь копируется в Лист1 лист в Рабочая тетрадь по предназначению .

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

14. Макрос для воспроизведения данных с одного листа на другой лист в другой открытой и сохраненной рабочей книге

На этот раз мы копировать данные из Набор данных лист из Рабочая тетрадь по источникам и паста в Лист2 рабочий лист в Рабочая тетрадь по предназначению . Но теперь рабочая книга открыта и сохранена .

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот код.

Данные из Набор данных лист в Рабочая тетрадь по источникам теперь копируется в Лист2 лист в Рабочая тетрадь по предназначению . И посмотрите на название, это рабочая книга была сохранена на этот раз.

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

15. применение VBA для копирования и вставки данных с одного рабочего листа на другой рабочий лист в другой закрытой рабочей книге

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

Шаги:

  • Во-первых, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • Второй, скопируйте следующий код и паста его в окно кода.
 Sub CopyOneFromAnotherClosed() 'Чтобы открыть рабочую книгу, сохраненную в вашей системе, измените путь ниже в соответствии с расположением вашего файла в вашей системе Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Копирует данные из рабочей книги с именем Source Workbook и 'Вставляет их в целевую рабочую книгу с именем Destination Workbook Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Закрываем целевую рабочую книгу после сохранения Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

Теперь ваш код готов к выполнению.

  • Следующий, Запускайте этот код.

Несмотря на то, что на этот раз рабочая книга была закрыта, после выполнения кода данные из Набор данных лист в Рабочая тетрадь по источникам теперь копируется в Лист3 лист в Рабочая тетрадь по предназначению .

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

О чем следует помнить

  • Методы с 1 по 14 требуют, чтобы ваши рабочие книги были открыты При выполнении макрокодов, показанных в этих методах, не забывайте держать открытыми исходную и конечную рабочие книги.
  • В то время как ваш рабочие книги сохраняются, то запишите имя файла с типом файла внутри кода. Когда рабочие книги не сохраняются, то запишите только имя файла без указания типа файла. Например, если ваш рабочая книга сохранена , затем напишите " Место назначения. xlsx ", но если рабочая книга не сохраняется , затем напишите " Место назначения " внутри кода.

Заключение

В этой статье вы узнали, как копировать и вставлять данные из одного рабочего листа в другой в Excel с VBA Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.

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