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

  • Споделя Това
Hugh West

Съдържание

Когато работим с няколко листа на Excel, понякога се налага да копираме данни от една електронна таблица в друга. VBA е най-ефективният, най-бързият и най-сигурният метод за изпълнение на всякакви операции в Excel. В тази статия ще ви покажем как да копиране и поставяне на данни от един работен лист в друг в Excel с Макрос VBA .

Изтегляне на работна тетрадка

Можете да изтеглите безплатната учебна тетрадка на Excel от тук.

Копиране и поставяне от един работен лист в друг.xlsm

15 метода с VBA за копиране и поставяне на данни от един работен лист в друг в Excel

В този раздел ще научите 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 за копиране на стойности и формати в 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 код за това как да копиране и поставяне на данни от един работен лист в друг с Range.Copy функция в Excel.

Стъпки:

  • Първо, отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • Второ, копирайте следния код и паста в прозореца за код.
 Sub CopyWithRangeCopyFunction() 'Задаване на променливи Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Задаване на променливи за изходния и целевия лист Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Копиране на данните от източника и поставяне в целевия лист Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Вашият код вече е готов за изпълнение.

  • Следващия, Изпълнявайте тази част от кода и вижте следното изображение.

Успешно дублирахме данни от Набор от данни лист в Обхват на копиране лист с Range.Copy функция.

Прочетете още: Excel формула за копиране на стойността на клетката в друга клетка

Подобни четива

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

8. прилагане на макрокод за дублиране на данни от един работен лист в друг със свойството USEDRANGE

Този път ще научим VBA код за това как да копиране и поставяне на данни от един работен лист в друг с Използван обхват атрибут в Excel.

Стъпки:

  • Първо, отворете Редактор на Visual Basic от Разработчик таб и Вмъкване на a Модул в прозореца с кода.
  • Второ, копирайте следния код и паста в прозореца за код.
 Sub CopyWithUsedRange() 'Задаване на променливи Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Задаване на променливи за изходния и целевия лист Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Копиране на данните от източника и поставяне в целевия лист Извикване wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Вашият код вече е готов за изпълнение.

  • Следващия, Изпълнявайте тази част от кода.

Както виждаме на горната снимка, успешно сме копирали и вмъкнали данни от Набор от данни лист в Използван обхват лист с ИЗПОЛЗВАН РАЗМЕР собственост.

Прочетете още: Как да копирате една и съща стойност в няколко клетки в 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 Диапазон в PasteSelected поименен лист .

  • Следващия, Изпълнявайте този код.

Накрая, само избраните данни от Набор от данни успешно се копират и поставят в Вмъкване на избраното лист в работната книга на 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 в друг

Можем да филтриране на изходния набор от данни и копиране и поставяне само на филтрираните данни в друг работен лист в 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 метода)
  • Грешка по време на изпълнение 1004: Методът PasteSpecial на класа Range се провали
  • Как да поставите връзка и да транспонирате в 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("Изходна работна книга").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Целева работна книга").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 и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.