複数のワークシートを含む複数のブックがあります。各ワークブックは各自のためのものです。だから私はすべてのシートを1つの新しいブックにマージし、各人のブックを個別に保存したいと思う。私は、新しいワークブックと既存のワークブックを切り替える方法を理解することはできません。私はそれぞれの人物のファイル名が異なるため、ファイル名で複数のシートを含む既存のファイルを参照したくありません。2つのブックが特定のハードコードされたファイル名を持たないときにブックを参照する方法
Sub MergeSheets()
Dim i As Integer
Dim Newbook As Workbook
Dim ws As Worksheet
Dim PersonName As String
PersonName = ActiveWorkbook.Sheets("Person Profile").Range("D3")
Set Newbook = Workbooks.Add
Set ws = Newbook.Worksheets("Sheet1").Name = "Merged"
ActiveWorkbook.Sheets("Person Profile").Activate
ActiveSheet.UsedRange.Select
Selection.Copy Destination:=Newbook.Range("A1")
For i = 2 To Sheets.Count
Sheets(i).Activate
UsedRange.Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=ws.Range("A65536").End(xlUp).Row
Next
Newbook.SaveAs "C:\Users\Documents\" + PersonName + ".xls"
End Sub
開き本を使用し、それを変数に設定することができ、その後に相互作用変数と述べました。 – findwindow
あなたの "一人"のブックはループスルーする場所はどこですか?たぶん、開始シナリオと終了シナリオの例を投稿してください。 – user3598756
@ user3598756マクロは、すべてのブックをループするものではありません。このアイデアは、処理が必要なワークブックを開き、別のワークブックを作成し、コード内のパスに保存されるマクロを実行することです。ファイルの名前は、処理中のワークブックのシートのいずれかのセルIDの1つから参照されます。それが理にかなってほしい。ありがとうございます – Zar