ВБА Копирај радни лист - Како користити Ворксхеет.Цопи?

Екцел ВБА радни лист за копирање

Понекад ће нам можда требати да копирамо одређени распон ћелија са једног радног листа на други или у исти радни лист. У неким случајевима ћемо можда морати копирати цео радни лист на нови радни лист. Можда вам је познато копирање низа ћелија, али како би било да копирате цео радни лист помоћу ВБА. У овом чланку ћемо вам дати детаљно објашњење како да копирате радни лист у другу радну свеску у ВБА.

Радни лист.Мопија копирања у ВБА

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

Радни лист (). Копија (пре, после)

Метода копирања садржи два аргумента Бефоре & Афтер; оба ова нису обавезна.

  1. Пре: Циљани радни лист који копирамо. Ако ово одредите, не можете користити аргумент Афтер .
  2. После: Циљани радни лист који копирамо. Ако ово одредите, не можете користити аргумент Бефоре .

Пошто су оба ово необавезни аргументи ако сте оставили празно, циљни радни лист ће се копирати у нову радну свеску, Мицрософт Екцел аутоматски креира нову радну свеску.

Примере истих видећемо сада у одељку за примере.

Примери радног листа у ВБА

Пример # 1

На пример, погледајте доле наведене податке у радном листу под називом „Јануар“.

Горе наведене податке имамо у радном листу под називом „Јануар“ .

  • Дакле, морамо копирати горњи радни лист након радног листа названог „ Лист1 “. Прво се позовите на радни лист помоћу објекта радног листа.

Шифра:

Суб Ворксхеет_Цопи_Екампле1 () Ворксхеетс ("Јануари") Енд Суб
  • Затим унесите метод „ Копирај “.

Шифра:

Суб Ворксхеет_Цопи_Екампле1 () Ворксхеетс ("Јануари"). Цопи Енд Суб
  • Као што горе видите када почнете да куцате, нећемо видети ИнтеллиСенсе листу за радне листове, ово је један од значајних проблема за почетнике ако директно користе објекат ВОРКСХЕЕТС, али то се може елиминисати употребом променљивих, па дефинишите променљива као „ Радни лист “.

Шифра:

Суб Ворксхеет_Цопи_Екампле1 () Дим Вс ас Ворксхеет Енд Суб
  • Сада за ову променљиву поставите референцу радног листа „ Јануар “.

Шифра:

Суб Ворксхеет_Цопи_Екампле1 () Дим Вс ас Ворксхеет Сет Вс = Ворксхеетс ("Јануари") Енд Суб
  • Дакле, сада користећи променљиву „ Вс “ лако можемо упутити радни лист под називом „ Јануар “. Дакле, унесите име променљиве „ Вс “ и одаберите метод „ Цопи “.

Тамо можемо видети листу ИнтеллиСенсе која приказује сва својства и методе објеката радног листа, захваљујући декларацији променљиве.

  • Изаберите методу „ Копирај “ и видећемо аргументе методе „ Копирај “.
  • Будући да радни лист морамо копирати након радног листа „ Схеет1 “, прво приступите аргументу „ Афтер “ уношењем имена аргумента као доле.

Након што је аргумент истакнут, јер смо користили име аргумента са симболом „ једнако по дефиницији “ (: =)

  • Сада унесите име листа помоћу објекта „ Схеетс “.

Шифра:

Суб Ворксхеет_Цопи_Екампле1 () Дим Вс Ас Ворксхеет Сет Вс = Ворксхеетс ("Јануари") Вс.Цопи Афтер: = Схеетс ("Схеет1") Енд Суб
  • Ми смо готови. Ово ће копирати радни лист „ Јануар “ иза радног листа „ Лист1 “.

Ето, копирали смо радни лист за јануар десно од „Схеет1“. Једна од подразумеваних ствари овде је назив радног листа исто као копирани лист са нумеричким бројем радног листа у загради, у овом случају је „(2)“.

  • Да бисте променили назив радног листа, додајте доњи део кода у горњи код.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • Подразумевано име копираног радног листа биће исто, праћено бројем тог копираног радног листа.

Занимљиви Чланци...