Excel:使用匹配的行填充工作表

我有一个Excel工作簿,用于按项目跟踪任务。 每个项目在工作簿中都有自己的工作表。

在每个工作表中,每个工作项目都有行,第一列包含工作项目分配给的人员的姓名。 这些行不按名称sorting。

我想创build一个工作表,它将自动遍历每个工作表(除了活动工作表),并拉入分配给某个人的所有行。

任何人都知道一个VBAmacros将为我照顾这个?

这应该让你开始:

Option Explicit '// change this name to generate a report for a different user //' Const activeUser = "Alex" '// change these values to fit your data //' Const maxTasks = 100 Const maxCols = 10 Public Sub BuildSummary() Dim projectIndex As Integer Dim projectSheet As Worksheet Dim taskIndex As Integer Dim summaryRow As Integer summaryRow = 1 For projectIndex = 1 To ActiveWorkbook.Worksheets.Count Set projectSheet = ActiveWorkbook.Worksheets(projectIndex) If projectSheet.Index <> ActiveSheet.Index Then '// insert a row with the name of the project //' ActiveSheet.Cells(summaryRow, 1).Value = projectSheet.Name summaryRow = summaryRow + 1 '// search for the active user in each task //' For taskIndex = 1 To maxTasks If projectSheet.Cells(taskIndex, 2).Value = activeUser Then '// copy the relevant rows to the summary sheet //' projectSheet.Range(projectSheet.Cells(taskIndex, 1), _ projectSheet.Cells(taskIndex, maxCols)).Copy ActiveSheet.Range(ActiveSheet.Cells(summaryRow, 1), _ ActiveSheet.Cells(summaryRow, maxCols)).Select ActiveSheet.Paste summaryRow = summaryRow + 1 End If Next taskIndex End If Next projectIndex ActiveSheet.Cells(1, 1).Select End Sub