ワークシートの完全なコピーを作成する例をいくつか見てきましたが、どれもうまくいきません。私の場合、シートは新しいワークブックに移動する必要があります。私の実際のコードでは、 wb はグローバルに定義されており、ワークブックはこれを呼び出した別のサブで作成されます。
Dim wb As Workbook
Set wb = Workbooks.Add()
Dim newtab as Worksheet
With ActiveWorkbook
.Sheets("Sample Attendance").Copy After:=wb.Sheets(.Sheets.Count)
Set newtab = wb.Sheets(wb.Sheets.Count - 1)
End With
うまくいきませんでした。
同じく
ActiveWorkbook.Sheets("Sample Attendance").Copy After:=wb.Sheets(1)
Set newtab = wb.Sheets("Sample Attendance")
newtab.Name = tabname
どちらのメソッドも、Copy ステートメントの後に戻ります。
私はこれで適度に成功しました:
Set newtab = wb.Worksheets.Add
newtab.Name = tabname
Set Attendance = ThisWorkbook.Sheets("Sample Attendance")
Attendance.Range("A:BB").Copy Destination:=newtab.Cells(1, 1)
動作します。しかし、その後、すべての PageSetup をコピーする必要があります。