Иногда копирование данных с нескольких листов в один столбец становится рутинной работой. Этого шага можно избежать с помощью автоматизации. Если вы хотите создать сводный лист после копирования данных из столбца каждого листа на один лист, вам следует прочитать эту статью.

В этой статье мы создадим макрос для копирования данных из определенного столбца и вставки на новый лист.

Исходные данные для этого примера состоят из данных о сотрудниках в форме книги Excel, содержащей три листа с ведомственными, личными и контактными данными сотрудников.

ArrowRaw

Для копирования данных с разных листов на новый лист мы создали макрос «CopyColumns». Этот макрос можно запустить, нажав кнопку «Запустить макрос» на листе «Основные».

ArrowMain

Макрос CopyColumns вставит новый лист с именем «Master» после листа «Main». «Мастер» будет содержать сводные данные со всех листов.

ArrowOutput

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

Worksheets.Add (after: = Worksheets («Main»))

Приведенный выше код используется для вставки новых рабочих листов после «Основного» рабочего листа.

Если Source.Name <> «Master» и Source.Name <> «Main», то End If Above используется для ограничения копирования данных с «Master» и «Main» листов.

Source.UsedRange.Copy Destination.Columns (Last)

Приведенный выше код используется для копирования данных из исходного листа в целевой лист.

Для каждого источника в ThisWorkbook.Worksheets Если Source.Name = «Master», то MsgBox «Мастер-лист уже существует»

Exit Sub End If Next Above code используется для проверки, существует ли уже «мастер» лист в книге. Макрос остановит выполнение, если «Мастер» лист уже существует в книге.

Пожалуйста, введите код ниже

Option Explicit

Sub CopyColumns()

Dim Source As Worksheet

Dim Destination As Worksheet

Dim Last As Long

Application.ScreenUpdating = False

'Checking whether "Master" sheet already exists in the workbook

For Each Source In ThisWorkbook.Worksheets

If Source.Name = "Master" Then

MsgBox "Master sheet already exist"

Exit Sub

End If

Next

'Inserting new worksheets in the workbook

Set Destination = Worksheets.Add(after:=Worksheets("Main"))

'Renaming the worksheet

Destination.Name = "Master"

'Looping through the worksheets in the workbook

For Each Source In ThisWorkbook.Worksheets





If Source.Name <> "Master" And Source.Name <> "Main" Then



'Finding the last column from the destination sheet

Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column



If Last = 1 Then

'Pasting the data in the destination sheet

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 и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]