Я все еще новичок в VBA, и я немного растерян, как решить эту конкретную проблему.
У меня есть несколько рабочих листов в одной рабочей книге.Цель состоит в том, чтобы скопировать данные с каждого рабочего листа на основе заголовков столбцов, поскольку не все заголовки столбцов являются одинаковыми для всех листов.
Например:
Мастер-лист содержит 6 заголовков столбцов, которые я хотел бы использовать.
Лист 1 имеет 8 заголовков столбцов, значения для некоторых столбцов в этом поле являются пустыми.
Лист 2 имеет 7 заголовков столбцов.
Лист 3 имеет 10 заголовков столбцов и т. Д.
Моя цель - перейти на каждый лист, сделать так, чтобы он просматривал заголовки каждого столбца и копировал / вставлял данные в мастер-лист, если столбецзаголовки матчей.
Я не знаю, как заставить его искать последнюю строку и копировать весь столбец на основе заголовка.
Ниже приведен пример кода, который я собрал вместе:
Sub MasterCombine()
Worksheets("Master").Activate
Dim ws As Worksheet
Set TH = Range("A1:F1")
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "Master" And ws.Range("A8").Value <> "" Then
ws.Select
Range("A8").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Worksheets("Master").Activate
For Each cell In TH
If cell.Value = "Subject" Then
cell.EntireColumn.Copy
End If
Проблема с вышесказанным заключается в том, что он копирует весь диапазон, но не отфильтровывает заголовки столбцов, которые не являютсяв мастер листе.
Буду признателен за любую помощь.