回答受付終了まであと7日

Excelについてです。 ある一つのExcelのシートに対して、複数人がそれぞれ別のパソコンで自分の担当の部分のみを入力しました。

Excel90閲覧xmlns="http://www.w3.org/2000/svg">250

回答(2件)

要するに、同一ブック内に同じフォーマットのシートが複数あって、それぞれの担当者がそれぞれの担当部分だけを入力した、歯抜け状態のシートがたくさんあるってことでしょうか。 Sub ConsolidateSheets() Dim ws As Worksheet Dim summarySheet As Worksheet Dim cell As Range Dim summaryDict As Object Dim rowIndex As Long Dim colIndex As Long Dim key As String ' 集約用のシートを作成 On Error Resume Next Set summarySheet = ThisWorkbook.Worksheets("Summary") If summarySheet Is Nothing Then Set summarySheet = ThisWorkbook.Worksheets.Add summarySheet.Name = "Summary" Else summarySheet.Cells.Clear ' 既存の内容をクリア End If On Error GoTo 0 ' Dictionaryを使用して集約 Set summaryDict = CreateObject("Scripting.Dictionary") ' 各シートをループ For Each ws In ThisWorkbook.Worksheets If ws.Name <> summarySheet.Name Then ' 各セルをループ For Each cell In ws.UsedRange If IsNumeric(cell.Value) Then key = cell.Address ' セルのアドレスをキーに使用 ' まだ存在しない場合のみ追加 If Not summaryDict.Exists(key) Then summaryDict.Add key, cell.Value End If End If Next cell End If Next ws ' 集約結果をSummaryシートに書き込む rowIndex = 1 For Each key In summaryDict.Keys summarySheet.Range(key).Value = summaryDict(key) Next key End Sub

この回答はいかがでしたか? リアクションしてみよう