【发布时间】:2018-11-30 15:52:54
【问题描述】:
我还是 VBA 新手,对如何解决这个特定问题有点迷茫。
我在 1 个工作簿中有多个工作表。目标是根据列标题从每个工作表复制数据,因为并非所有列标题在所有工作表中都是统一的。
例如:
主工作表有 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
上面的问题是它复制了整个范围,但没有过滤掉不在主表中的列标题。
任何帮助将不胜感激。
【问题讨论】:
-
您的主工作表是否有一致的列标题? IE。每次都是相同的列?
-
主表有 6 个不会更改的列标题。从中提取数据的其他工作表具有这 6 个,但也具有不需要的其他列。希望能回答这个问题?