誰かが私を助けてくれるのではないかと思います。
以下のコードを使用して、ユーザーが複数のワークブックを異なるフォルダーから 1 つの「概要」ワークシートにマージできるようにしています。
Sub Merge()
Dim DestWB As Workbook, WB As Workbook, WS As Worksheet, SourceSheet As String
Set DestWB = ActiveWorkbook
SourceSheet = "Input"
startrow = 7
FileNames = Application.GetOpenFilename( _
filefilter:="Excel Files (*.xls*),*.xls*", _
Title:="Select the workbooks to merge.", MultiSelect:=True)
If IsArray(FileNames) = False Then
If FileNames = False Then
Exit Sub
End If
End If
For n = LBound(FileNames) To UBound(FileNames)
Set WB = Workbooks.Open(Filename:=FileNames(n), ReadOnly:=True)
For Each WS In WB.Worksheets
If WS.Name = SourceSheet Then
With WS
If .UsedRange.Cells.Count > 1 Then
dr = DestWB.Worksheets("Input").Range("C" & DestWB.Worksheets("Input").Rows.Count).End(xlUp).Row + 1
Lastrow = .Range("C" & Rows.Count).End(xlUp).Row
If Lastrow >= startrow Then
.Range("A" & startrow & ":AE" & Lastrow).Copy
DestWB.Worksheets("Input").Cells(dr, "A").PasteSpecial xlValues
End If
End If
End With
Exit For
End If
Next WS
WB.Close savechanges:=False
Next n
End Sub
コードは機能しますが、これを少し調整して、ユーザーがマージするファイルを手動で選択する代わりに、マクロがファイル名とファイル パスのリストを読み取り、関連データを自動的にコピーして貼り付けるようにします。 「概要」シートに。
B3:B10 にファイル名がリストされ、C3:C10 に関連するファイル パスがリストされた「リスト」というシートがあるように、サマリー ワークブックを設定しました。「Stackoverflow」を検索して Google 検索を実行しました。このトピックに関する投稿はたくさん見つかりましたが、ファイル名とパスのリストから読み取る方法は示されていませんが、特定のパスをハードコーディングする方法は示されていません。私のニーズに合わないディレクトリ。
誰かがこれを見て、どうすればこれを達成できるかについてのガイダンスを提供できるかどうか疑問に思いました.
多くの感謝と親切な敬意