ВБА Копирај лист / Копирај лист у другу радну свеску

Овај водич ће покрити како копирати лист или радни лист помоћу ВБА.

Копирајте радни лист у нову радну свеску

Да бисте копирали радни лист у нову радну свеску:

1 Табеле („Лист1“). Копирај

Копирајте АцтивеСхеет у нову радну свеску

Да бисте копирали АцтивеСхеет у нову радну свеску:

1 АцтивеСхеет.Цопи

Копирајте више листова у нову радну свеску

Да бисте копирали више листова у нову радну свеску:

1 АцтивеВиндов.СелецтедСхеетс.Цопи

Копирај лист у оквиру исте радне свеске

Почели смо тако што смо вам показали најједноставнији пример примерака листова: копирање листова у нову радну свеску. Ови доњи примери ће вам показати како копирати лист у истој радној свесци. Приликом копирања листа унутар радне књиге морате навести локацију. Да бисте навели локацију, рећи ћете ВБА да премести радни лист пре или после другог радног листа.

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

Овде ћемо навести копирање и лепљење листа пре Схеет2

1 Табеле ("Лист1"). Копирај пре: = Табеле ("Лист2")

Копирајте лист пре првог листа

Уместо да наведете назив листа, можете одредити и позицију листа. Овде копирамо и лепимо Лист пре првог листа у радној свесци.

1 Табеле („Лист1“). Копирај пре: = Табеле (1)

Новонастали лист сада ће бити први лист у радној свесци.

Копирај лист после последњег листа

Помоћу својства Афтер реците ВБА да залепи Лист НАКОН другог листа. Овде ћемо копирати и залепити лист после последњег листа у радној свесци:

1 Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број)

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

Премести лист

Такође можете да преместите лист унутар радне свеске користећи сличну синтаксу. Овај код ће преместити Лист1 на крај радне свеске:

1 Табеле („Лист1“). Премести после: = Табеле (Табеле.Број)

Копија и именски лист

Након копирања и лепљења листа, новонастали лист постаје АцтивеСхеет. Дакле, да бисте преименовали наш нови лист, једноставно користите АцтивеСхеет.Наме:

123456 Суб ЦопиСхеетРенаме1 ()Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број)АцтивеСхеет.Наме = "Последњи лист"Енд Суб

Ако назив листа већ постоји, горњи код ће генерисати грешку. Уместо тога, можемо да користимо „Следећи наставак грешке“ да кажемо ВБА да игнорише именовање листа и настави са остатком процедуре:

12345678 Суб ЦопиСхеетРенаме2 ()Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број)На Грешка Настави даљеАцтивеСхеет.Наме = "Последњи лист"Он Еррор ГоТо 0Енд Суб

Или користите нашу функцију РангеЕкистс да бисте тестирали да ли назив листа већ постоји пре него што покушате да копирате лист:

123456789101112131415161718 Суб ЦопиСхеетРенаме3 ()Ако РангеЕкистс ("ЛастСхеет") ЗатимМсгБок "Лист већ постоји."ИначеТабеле („Лист1“). Копирај после: = Табеле (Табеле.Број)АцтивеСхеет.Наме = "Последњи лист"Крај АкоЕнд СубФункција РангеЕкистс (ВхатСхеет Ас Стринг, Опционално БиВал ВхатРанге Ас Стринг = "А1") Као логичкоДим тест Ас РангеНа Грешка Настави даљеПостави тест = АцтивеВоркбоок.Схеетс (ВхатСхеет) .Ранге (ВхатРанге)РангеЕкистс = Ерр.Нумбер = 0Он Еррор ГоТо 0Завршна функција

Копирај и именски лист на основу вредности ћелије

Можда бисте такође желели да копирате и дате листу листу на основу вредности ћелије. Овај код ће назвати Радни лист на основу вредности ћелије у А1

12345678 Суб ЦопиСхеетРенамеФромЦелл ()Табеле („Лист1“). Копирај после: = Табеле (Табеле.Број)На Грешка Настави даљеАцтивеСхеет.Наме = Опсег ("А1"). ВредностОн Еррор ГоТо 0Енд Суб

Копирајте радни лист у другу радну свеску

До сада смо радили на копирању листова у радној свесци. Сада ћемо размотрити примере копирања и лепљења листова у друге радне свеске. Овај код ће копирати лист на почетак друге радне свеске:

1 Табеле („Лист1“). Копирај пре: = Радне свеске („Пример.клсм“). Табеле (1)

Ово ће копирати радни лист на крај друге радне свеске.

1 Табеле („Лист1“). Копирај после: = Радне свеске („Пример.клсм“). Табеле (Радне свеске („Пример.клсм“). Таблице.Број)

Приметите да смо заменили 1 са Радне свеске („Пример.клсм“). Табеле.Број да бисте добили последњи радни лист.

Копирајте радни лист у затворену радну свеску

Можда бисте такође желели да копирате радни лист у затворену радну свеску. Овај код ће отворити затворену радну свеску тако да можете копирати лист у њу.

123456789 Суб ЦопиСхеетТоЦлоседВБ ()Апплицатион.СцреенУпдатинг = НетачноПодесите цлоседБоок = Воркбоокс.Опен ("Д: \ Дропбок \ екцел \ артицлес \ екампле.клсм")Схеетс ("Схеет1"). Копирај пре: = цлоседБоок.Схеетс (1)цлоседБоок.Цлосе СавеЦхангес: = ТачноАпплицатион.СцреенУпдатинг = ТачноЕнд Суб

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

Насупрот томе, овај код ће копирати радни лист ИЗ затворене радне свеске без потребе за ручним отварањем радне свеске.

123456789 Суб ЦопиСхеетФромЦлоседВБ ()Апплицатион.СцреенУпдатинг = НетачноПодесите цлоседБоок = Воркбоокс.Опен ("Д: \ Дропбок \ екцел \ артицлес \ екампле.клсм")цлоседБоок.Схеетс ("Схеет1"). Цопи Бефоре: = ТхисВоркбоок.Схеетс (1)цлоседБоок.Цлосе СавеЦхангес: = ФалсеАпплицатион.СцреенУпдатинг = ТачноЕнд Суб

Уочите да смо у оба ова примера онемогућили ажурирање екрана тако да процес ради у позадини.

Дуплирање Екцел листа више пута

Такође можете дуплирати Екцел лист помоћу петље.

1234567891011121314 Суб ЦопиСхеетМултиплеТимес ()Дим н Ас ИнтегерДим и Ас ИнтегерНа Грешка Настави даљен = ИнпутБок ("Колико копија желите да направите?")Ако је н> 0 ТадаЗа и = 1 То нАцтивеСхеет.Цопи Афтер: = АцтивеВоркбоок.Схеетс (Ворксхеетс.Цоунт)СледећиКрај АкоЕнд Суб

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave