【问题标题】:Excel: Populate worksheet with matching rowsExcel:使用匹配的行填充工作表
【发布时间】:2009-06-17 16:07:54
【问题描述】:

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

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

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

有人知道可以帮我解决这个问题的 VBA 宏吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这应该让你开始:

    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
    

    【讨论】:

    • 通过一些非常细微的调整,这正是我想要的。感谢您将这些放在一起!
    • 没问题。我很高兴听到它很有用!
    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2013-07-12
    • 2015-02-10
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多