【发布时间】:2017-06-21 18:52:27
【问题描述】:
我正在尝试将不同工作表上的多个不同部件列表合并到一个主列表中。
问题是,有时,例如,主框架零件或装饰零件将有多个板材(例如 Main frame、Main frame (2)、Trim、Trim (2)、Trim (3) 等)用于不同的部分。
所以我不能像我之前认为的那样对值进行硬编码,因为每个工作簿的工作表数量不同。我从中复制的第一张工作表和我从中复制的最后一张工作表是相同的,但是根据工作簿,它们可能是之前的工作表,并且总是之后的工作表,我不想包括在内,所以我不能倒数最后一张纸或始终从第一张纸开始。
我不是 VBA 专家,它似乎足够强大来处理我的问题,我只是不知道如何具体解决它。
我已将逻辑附加到我目前用于将所有工作表连接为一个的代码中,但它的动态性不足以适用于每种情况。 (也为风格不佳感到抱歉)
我们将不胜感激任何帮助或只是正确方向的一点。
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Master"
Sheets(2).Activate
' Add copy logo once here.
Range("A6").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1").End(xlUp)(1)
For j = 2 To 13 ' Range of sheets
Sheets(j).Activate
Range("A6").Select
Selection.CurrentRegion.Select
' Adjust here to eliminate header but include 2 rows below it
Selection.Offset(5, 0).Resize(Selection.Rows.Count - 5).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(6)
Next
Sheets(1).Activate
Range("A1:O1").Select
Range("O1").Activate
Selection.Delete Shift:=xlUp
Range("O10").Select
Range("A1:O4").Select
Range("O4").Activate
Selection.Delete Shift:=xlUp
【问题讨论】:
-
那么您在不同的工作簿中使用的这段代码,但它们有不同数量的工作表吗?
-
是的。它一次只应用于一个工作簿以组合该工作簿中的工作表,但我希望它能够在不同的工作簿上工作,但我上面提到的可能会有细微的变化。
-
那么您希望它能够运行超过 12 个工作表/少于 12 个工作表,还是希望它跳过某些工作表?
-
是的。超过 12 个,可能少于 12 个。我希望它能够在开始或结束时跳过工作表。它将复制的第一张纸将始终与它将复制的最后一张纸同名。但是有可能在它之前有不同的命名表,而在它之后几乎总是有我不想包含的表
-
我已经用你的新代码块编辑了我的帖子,我认为我已经正确地编辑了它,但是由于全新的代码改造,我现在有点迷茫,所以请原谅任何错误的编译错误...