Копирајте опсег са сваког листа у један лист користећи ВБА у Мицрософт Екцелу

Anonim

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

Сирови подаци за овај пример састоје се од података о запосленима из различитих одељења на различитим листовима. Желимо да консолидујемо податке о запосленима у један лист.

Направили смо макро „ЦопиРангеФромМултиплеСхеетс“ за консолидацију података. Овај макро се може покренути кликом на дугме „Консолидовање података“.

Макро ће креирати нови радни лист и уметнути консолидоване податке са свих радних листова.

Објашњење кода

„Премотавање“ кроз све листове ради провере да ли постоји „Главни“ лист.

За сваки извор у овој радној свесци.Радни листови

Ако је Соурце.Наме = "Мастер" Онда

МсгБок "Главни лист већ постоји"

Екит Суб

Крај Ако

Следећи

Горњи код се користи за проверу да ли у радној свесци постоји „Главни“ лист. Ако лист „Мастер“ постоји у радној свесци, код излази и приказује се порука о грешци.

Соурце.Ранге ("А1"). СпециалЦеллс (клЛастЦелл) .Ров

Горњи код се користи за добијање броја реда последње ћелије на листу.

Соурце.Ранге ("А1", Ранге ("А1"). СпециалЦеллс (клЛастЦелл)). Копирај Дестинатион.Ранге ("А" & ДестЛастРов)

Горњи код се користи за копирање наведеног опсега у дефинисану ћелију.

Молимо следите доле за код

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

Ако вам се допао овај блог, поделите га са пријатељима на Фацебооку. Такође, можете нас пратити на Твиттер -у и Фацебоок -у.

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