Следующий код выполняет копирование целых столбцов на основе заголовков. Заголовок из листа 2, если он найден в листе 1, весь столбец копируется в лист 2.
Можно ли расширить этот код, чтобы пропустить заголовки, присутствующие только в sheet2. Теперь столбцы, присутствующие только в sheet2, перезаписываются пустым столбцом. Это дополнительная информация, и они мне нужны.
Sub CopyCols()
Application.ScreenUpdating = False
Dim LastRow As Long, header As Range, foundHeader As Range, lCol As Long, srcWS As Worksheet, desWS As Worksheet
Set srcWS = Sheets("Sheet1")
Set desWS = Sheets("Sheet2")
LastRow = srcWS.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = desWS.Cells(1, Columns.Count).End(xlToLeft).Column
For Each header In desWS.Range(desWS.Cells(1, 1), desWS.Cells(1, lCol))
Set foundHeader = srcWS.Rows(1).Find(header, LookIn:=xlValues, lookat:=xlWhole)
If Not foundHeader Is Nothing Then
srcWS.Range(srcWS.Cells(2, foundHeader.Column), srcWS.Cells(LastRow, foundHeader.Column)).Copy desWS.Cells(2, header.Column)
End If
Next header
Application.ScreenUpdating = True
End Sub