Копирайте колона или колони от всеки лист в един лист с помощта на VBA в Microsoft Excel

Anonim

Понякога става рутинна работа за копиране на данни от няколко листа за една и съща колона. Тази стъпка може да бъде избегната с помощта на автоматизация. Ако искате да направите консолидиран лист след копиране на данни от колона на всеки лист в един лист, тогава трябва да прочетете тази статия.

В тази статия ще създадем макрос за копиране на данни от конкретна колона и поставяне в нов лист.

Суровите данни за този пример се състоят от данни за служителите под формата на работна книга на Excel, съдържаща три листа с ведомствени, лични и данни за контакт на служителите.

За да копираме данни от различни листове в нов лист, създадохме макрос „CopyColumns“. Този макрос може да бъде стартиран, като щракнете върху бутона „Изпълни макроса“ на листа „Основен“.

Макросът „CopyColumns“ ще вмъкне нов лист, наречен „Master“ след листа „Main“. „Главен“ лист ще съдържа консолидирани данни от всички листове.

Обяснение на кода

Работни листове. Добавяне (след: = Работни листове ("Основни"))

Горният код се използва за вмъкване на нови работни листове след работния лист „Основен“.

Ако Source.Name "Master" и Source.Name "Main" Тогава

Край Ако

Горният код се използва за ограничаване на копирането на данни от листа „Главен“ и „Основен“.

Source.UsedRange.Copy Destination.Columns (Последно)

Горният код се използва за копиране на данни от изходния лист към целевия лист.

За всеки източник в тази работна книга, работни листове

Ако Source.Name = "Master" Тогава

MsgBox "Основен лист вече съществува"

Изход от Sub

Край Ако

Следващия

Горният код се използва за проверка дали в работната книга вече съществува лист „Основен“. Макросът ще спре изпълнението, ако лист „Главен“ вече съществува в работната книга.

Моля, следвайте кода по -долу

 Опция Изрично подкопиранеColumns () Източник на затъмняване като работен лист Затъмняване на дестинация като затъмняване на работен лист Последно като дълго Application.ScreenUpdating = False 'Проверка дали лист "Master" вече съществува в работната книга за всеки източник в ThisWorkbook.Worksheets If Source.Name = "Master" Тогава MsgBox "Основен лист вече съществува" Излезте от подкрайника Ако следва "Вмъкване на нови работни листове в работната книга Задайте дестинация = Работни листове. Добавете (след: = Работни листове (" Основен ")) 'Преименуване на работния лист Destination.Name =" Master "' Циклично чрез работните листове в работната книга За всеки източник в ThisWorkbook.Worksheets If Source.Name "Master" и Source.Name "Main" then 'Намиране на последната колона от листа на местоназначение Last = Destination.Range ("A1"). SpecialCells ( xlCellTypeLastCell) .Column If Last = 1 then 'Поставяне на данните в целевия лист Source.UsedRange.Copy Destination.Columns (Last) Else Source.UsedRange.Copy Destination.Columns (Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта