Excel VBA опсег на копирање на друг лист (8 најлесни начини)

  • Споделете Го Ова
Hugh West

Кога и да ви треба, можете да копирате опсег од еден лист на друг лист или работна книга. Постојат различни видови на копирање и вметнување. По овој напис, ќе запознаете различни начини за користење на опсегот на копирање Excel VBA на друг лист.

За да го направам објаснувањето живо, ќе користам примерок на база на податоци што ги претставува личните информации на одредени лица . Податокот има 4 колони. Овие колони се Име, Презиме, Полно име, и Е-пошта .

Преземете ја работната книга за вежбање

VBA опсег на копирање на друг лист.xlsm

8 начини за Excel VBA копирање опсег на друг лист

1. Копирај опсег на друг лист со формат

Секогаш кога сакате да Копирате опсег од еден лист до друг лист со Формат можете едноставно да го направите со користење на VBA .

Овде, ќе копирам опсег од Става на податоци лист до Со формат лист.

Ајде да ја започнеме процедурата,

Прво, отворете ја картичката Програмер >> изберете Visual Basic

Исто така можете да ја користите тастатурата ALT + F11 за да ја отворите VBA уредник.

Следно, ќе отвори нов прозорец со име Microsoft Visual Basic за апликации.

Оттаму, отворете Вметни >> изберете Модул .

А Модулот ќе се отвори, а потоа внесете го следниот код во отворениот >> изберете Прикажи макроа

➤ Ќе се појави дијалог поле .

Сега, од името на макрото изберете го Copy_Range_BelowLastCell_AnotherSheets исто така изберете ја работната книга во Макроа во .

На крајот, Изврши избраното Макро .

Оттука, ќе го копира одбраниот опсег и ќе го Залепи од последниот ред на друг лист .

8. VBA Копирајте опсег до последниот ред од друга работна книга

Ако сакате да Копирате опсег до последниот ред на друг лист со работна книга, исто така можете да го користите VBA .

Тука, ќе Копирам опсег од Dataset2 лист до Лист 1 од Книга2 но од првата непразна ќелија.

За да ја започнете процедурата,

Прво, отворете ја картичката Програмер >> изберете Visual Basic

Исто така, можете да ја користите тастатурата ALT + F11 за да го отворите уредникот VBA .

Следно, ќе отвори нов прозорец на Microsoft Visual Basic за апликации.

Оттаму, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

4387

Тука, ја прогласив Под процедурата Copy_Range_BelowLastCell_To_Another_Workbook каде wsCopy и wsDestination се Работен лист тип, lCopyLastRow и lDestLastRow се Долги тип.

Прво, се користат Поставете за поставување на променливи за листот што треба да се копира и за дестинацискиот лист.

Следно, го користеше методот Ред за да го пронајде последниот ред врз основа на податоците од колоната A во опсегот на копирање.

Повторно, го користевме методот Ред за да се најде првиот празен ред врз основа на податоците од колоната A во опсегот на одредиштето, исто така се користи Offset за да се премести едно својство надолу.

На крајот, Копирано податоците од Dataset2 листот од Excel VBA Copy Range to Another Sheet.xlsm до дестинацијата Sheet1 од работната книга Book2.xlsx .

Сега, Зачувајте го кодот и вратете се на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прегледајте макроа

➤ Ќе се појави дијалог поле .

Сега, од името на макрото изберете ја Copy_Range_BelowLastCell_To_Another_Workbook исто така изберете ја работната книга во Макроа во .

Конечно, Изврши избраното макро .

Оттука, ќе го копира одбраниот опсег од постоечкиот лист до последниот ред од друга работна книга.

Оддел за вежбање

Дадов практичен лист во работната книга за да ги вежбам овие објаснети начини на опсегот на копирање на Excel VBA на друг лист.

Заклучок

Во оваа статија, објаснив 8 различни типови на лесни и брзи начини наExcel VBA копирајте опсег на друг лист. Овие различни начини ќе ви помогнат да копирате опсег од еден лист во друг, а исто така и од еден лист во друга работна книга. Последно, но не и најмалку важно, ако имате какви било предлози, идеи и повратни информации, ве молиме слободно коментирајте подолу.

Модул.
7736

Овде, ја објавив Под процедурата Copy_Range_withFormat_ToAnother_sheet

Го зедов опсегот B1:E10 за копирање од постоечкиот лист на името на листот WithFormat .

Тука, го користев Копирај метод за копирање на избраниот опсег, Копирај методот го копира кој било опсег со Формат .

На крајот, Зачувај шифрата и вратете се на работниот лист .

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прегледајте макроа

➤ Ќе се појави дијалог поле .

Сега, од името на макрото изберете го Copy_Range_withFormat_ToAnother_sheet исто така изберете ја работната книга во Макроа во .

Конечно, Изврши избраното макро .

Оттука, ќе го копира одбраниот опсег со Формат на новиот лист што го избрав ( Со формат) .

2. VBA Копирај опсег на друг лист без формат

Исто така е можно е да Копирате опсег на друг лист без Формат со користење на VBA .

Тука, ќе Копирам опсег од Поставка на податоци лист до лист WithoutFormat .

Ајде да ја започнеме процедурата,

Сега, отворете го Програмер картичката >> изберете Visual Basic ( користете го ALT + F11)

Следно, ќе се отвори Microsoft Visual Basic за апликации.

Потоа, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

2884

Овде, ја прогласив Под процедурата Copy_Range_WithoutFormat_Toanother_sheet

Го презедов опсегот B1:E10 за копирање од постоечкиот лист во името на листот Без Формат .

Тука, го користев методот Копирај за да го копирам избраниот опсег, но исто така спомна Paste:=xlPasteValues ​​ во методот PasteSpecial , така што ќе ги залепи само Вредностите од избраниот опсег, а не форматот.

Конечно , Зачувајте го кодот и вратете се на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прегледај макроа

➤ Ќе се појави дијалог поле .

Сега, од Името на макрото изберете го Copy_Range_WithoutFormat_Toanother_sheet и исто така изберете ја работната книга во Макроа во .

Конечно, Стартувај го одбраното Макро .

Така, ќе го Копира одбраниот опсег само со Вредности не Формат .

3. Копирајте опсег на друг лист со формат и ширина на колона

Понекогаш можеби ќе сакате да Копирајте го селектираниот опсег каков што е, за тоа можете да Копирате опсег со Формат и Ширина на колона .

Тука, Ќе Копирам опсег од Збирка на податоци лист до Форматирање и засилување; Ширина на колона лист.

За да ја видите постапката за извршување на задачата користејќи VBA ,

Прво, отворете ја картичката Програмер >> изберете Visual Basic

Исто така, можете да ја користите тастатурата ALT + F11 за да го отворите уредникот VBA .

Следно, ќе отвори нов прозорец на Microsoft Visual Basic за апликации.

Таму, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

9043

Овде, ја прогласив Под процедурата Copy_Range_to_Another_sheet_with_FormatAndColumnWidth

Го презедов опсегот B1:E10 за копирање од постоечкиот лист во името на дестинацијата Форматирај & засилувач; Ширина на колона .

Тука, го користев методот Копирај за да го копирам избраниот опсег. Го користев и методот PasteSpecial каде што спомнав Paste:=xlPasteColumnWidths така што го залепува избраниот опсег заедно со Format и Column Width .

Конечно, Зачувајте го кодот и вратете се на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прегледај макроа

➤ Ќе се појави дијалог поле .

Сега, од Името на макрото изберете го Опсег_Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth и исто така изберете ја работната книга во Макроа во .

Конечно, Стартувај го одбраното Макро .

Како резултат на тоа, ќе го копира одбраниот опсег со Формат и Ширина на колона .

4. VBA Копирајте опсег на друг лист со формулата

Во случај да имате некоја формула во вашата база на податоци што сакате да ја копирате. Без грижи! Може да го копирате опсегот што содржи Формула на друг лист со задржување на формулата недопрена.

Овде, ќе Копирам опсег од Збирка податоци лист до WithFormula лист

Ајде да ја започнеме процедурата,

За почеток, отворете ја картичката Програмер >> изберете Visual Basic ( исто така можете да ја користите ALT + F11 тастатурата)

Следно, ќе отвори Microsoft Visual Basic за апликации.

Оттаму, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

6613

Тука, ја прогласив Подпроцедурата Copy_Range_withFormula_ToAnother_sheet

Го презедов опсегот B1:E10 за копирање од постоечкиот лист до името на дестинацискиот лист WithFormula .

Тука, го користев методот Копирај за да го копирам избраниот опсег. Го користев и методот PasteSpecial каде што спомнав Paste:=xlPasteFormulas така што ги носи Формулите заедно со избраниот опсег.

Конечно , Зачувајте го кодот и вратете се на работниот лист.

Потоа, отворете го Преглед таб >> од Макроа >> изберете Прикажи макроа

➤ Ќе се појави дијалог поле .

Сега, од името на макрото изберете го Copy_Range_withFormula_ToAnother_sheet исто така изберете ја работната книга во Макроа во .

Конечно, Изврши избраното макро .

Така, ќе ги копира сите избрани опсези на ќелии со Формули .

Слични читања:

  • Како да се користи VBA Range Offset (11 начини)
  • VBA за секоја ќелија во опсегот во Excel (3 методи)
  • Како да се користи опсегот на објектот на VBA во Excel (5 својства)

5. Копирајте опсег со AutoFit на друг лист

Додека Копирате опсег на друг лист, исто така можете да го користите методот AutoFit во VBA до AutoFit копираниот опсег во новиот лист.

Тука, ќе Копирам опсег од Збирка податоци лист до AutoFit лист

Ајде да ја започнеме процедурата,

Прво, отворете ја картичката Програмер >> изберете Visual Basic

Исто така, можете да ја користите тастатурата ALT + F11 за да го отворите уредникот VBA .

Следно, ќе се отвори прозорец на Microsoft Visual Basic за апликации.

Потоа, отворете Вметни > ;> изберете Модул .

А Модулот ќе се отвори, а потоа внесете го следниот код во отворениот Модул .

2737

Тука, ја објавив Под процедурата Copy_Range_withFormat_AutoFit

Прво, го избрав работниот лист Збирка на податоци . Потоа го земав опсегот B1:E10 за копирање од постоечкиот лист до дестинацијата со име AutoFit .

Тука, го користев Копирај метод за копирање на избраниот опсег и методот AutoFit автоматски ќе се вклопи во дадените колони B:E .

На крајот, Зачувајте го кодот и одете назад на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прегледај макроа

➤ Ќе се појави дијалог поле .

Сега, од Името на макрото изберете го Copy_Range_withFormat_AutoFit исто така изберете ја работната книга во Макроа во .

Конечно, Изврши избраното макро .

Оттука, ќе го копира одбраниот опсег на нов лист и исто така Автоматско одговарање колоните.

6. VBA Копирајте опсег во друга работна книга

Ако сакате, можете и Копирате опсег од еден лист до друг лист од друга работна книга.

Тука, ќе Копирам опсег од Збирка податоци лист до Лист 1 од Книга1 работна книга.

Ајде да ја започнеме процедурата,

Прво, отворете ја картичката Програмер >> изберете Visual Basic (y исто така можете да ја користите ALT + F11 тастатурата)

Потоа, ќе се отвори Microsoft VisualОсновно за апликации.

Следно, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

9813

Тука, ја прогласив Под процедурата Copy_Range_WithFormat_Toanother_WorkBook

Го презедов опсегот B3:E10 од име на лист Збирка податоци за да се копира од постојниот лист во името на новата работна книга Книга1 и името на листот Лист 1 .

Овде, го користев методот Копирај за да го копирам избраниот опсег во новата работна книга.

На крајот, Зачувајте го кодот и вратете се на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа >> изберете Прикажи макроа

➤ Ќе се појави дијалог поле .

Сега, од името на макрото изберете ја Copy_Range_WithFormat_Toanother_WorkBook исто така изберете ја работната книга во Макроа во .

На крајот, Изврши избраниот макро .

Сега, ќе го копира одбраниот опсег од листот Збирка на податоци во друга работна книга.

7. Копирајте опсег до последниот ред од друг лист

Во секој случај, ако сакате да Копирате опсег на друг лист од одредена ќелија или последната ќелија можете да го направите со помош на VBA .

Пред да влезам во процедурата, сакам да ви кажам дека земав два нови листови кои се состојат од Полно име, е-пошта, и Адреса .

Ајде прво да го набљудуваме листот Dataset2 .

Еве го листот Подолу последна ќелија .

Тука, ќе копирам опсег од Dataset2 лист до Под последната ќелија но од првата непразна ќелија.

За почеток, отворете ја картичката Програмер >> изберете Visual Basic

Следно, ќе се отвори Microsoft Visual Basic за апликации.

Потоа, отворете Вметни >> изберете Модул .

Ќе се отвори Модул , а потоа напишете го следниот код во отворениот Модул .

2625

Тука, ја прогласив Под процедурата Copy_Range_BelowLastCell_AnotherSheets

Прво, го избрав листот Dataset2 , а потоа го користеше методот Row за да го брои Последниот ред и го задржа избројаниот ред во lr .

Потоа земен опсегот A2:C & засилувач; lr за да копирате од постоечкиот лист во името на дестинацискиот лист Подолу последна ќелија .

Повторно, го користевме методот Ред за да го броите Последниот Ред од друг лист со име под последната ќелија и го задржа избројаниот ред во lrAnotherSheet .

Овде, го користев методот Копирај за да го копирате избраниот опсег и методот AutoFit автоматски ќе се вклопи во дадените колони A:C .

На крајот, Зачувајте го кодот и вратете се назад на работниот лист.

Следно, отворете ја картичката Преглед >> од Макроа

Хју Вест е високо искусен тренер и аналитичар на Excel со повеќе од 10 години искуство во индустријата. Има диплома за сметководство и финансии и магистер по бизнис администрација. Хју има страст за предавање и има развиено уникатен пристап на наставата кој е лесен за следење и разбирање. Неговото стручно познавање на Excel им помогна на илјадници студенти и професионалци ширум светот да ги подобрат своите вештини и да се истакнат во нивните кариери. Преку својот блог, Хју го споделува своето знаење со светот, нудејќи бесплатни упатства за Excel и онлајн обука за да им помогне на поединците и бизнисите да го достигнат својот целосен потенцијал.