Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function CopyColumnsByHeaders(sourceWorkbook As Workbook, sourceWorksheet As Worksheet, _
- destWorkbook As Workbook, destWorksheet As Worksheet, _
- startColumn As Long, ParamArray headers() As Variant)
- Dim header As Variant
- Dim sourceHeaderRange As Range
- Dim destHeaderRange As Range
- Dim lastUsedRow As Long
- Dim lastUsedColumn As Long
- Dim sourceLastRow As Long
- Dim destLastRow As Long
- For Each header In headers
- Set sourceHeaderRange = sourceWorksheet.Rows(1).Find(header, LookIn:=xlValues, LookAt:=xlWhole)
- If Not sourceHeaderRange Is Nothing Then
- sourceLastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.count, sourceHeaderRange.Column).End(xlUp).Row
- destLastRow = destWorksheet.Cells(destWorksheet.Rows.count, startColumn).End(xlUp).Row + 1
- sourceWorksheet.Range(sourceHeaderRange, sourceWorksheet.Cells(sourceLastRow, sourceHeaderRange.Column)).SpecialCells(xlCellTypeVisible).Copy _
- Destination:=destWorksheet.Cells(destLastRow, startColumn)
- startColumn = startColumn + 1
- End If
- Next header
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement