これは、あなたが始める必要があります。
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
をいくつかの非常にわずかな調整で、これは私が探していたまさにでした。 これをまとめてくれてありがとう! – Matt
問題ありません。それが役に立つと聞いてうれしいです! –