複数のシートを1つのシートに統合し、最後の「結合済み」シートに新しい列を追加しようとしています。新しいシートには、「ソース」という名前の列があり、シート名の後ろにある行がコピーされます。あなたの助けの人たちのために事前に出力シートにソースシート名を含める
Sub Final()
Path = " "
Filename = Dir(Path & "*.csv")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
感謝:)
これは記録されたアクションのように見えますが、これはやや編集されて自動化されます。より多くの経験がある場合は、地域やシートの選択を避ける方法を学びます。これにより、プログラムの読み込みとデバッグが容易になり、誤ったユーザーとのやりとりが起こりにくくなります。 –
'J.Name'を使ってシートの名前を見つけ、それを任意のセルに値として割り当てることができます –
@dirk Horsten、シート(J).name – h2so4