Съдържание
Когато работим с няколко листа на 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 . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.