[英]How do I copy and paste formatting of excel tab to other tabs except a selected sheet using excel VBA
[英]Excel vba how to copy sheet with all formatting & page setup
我已經看到了很多制作完整工作表副本的示例,但沒有一個對我有用。 就我而言,工作表必須放入新的工作簿中。 在我的實際代碼中,wb是全局定義的,而工作簿是在另一個名為this的子目錄中創建的。
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,這使我很滿意,而且需要花很長時間。
我看到您的第一段代碼有兩個問題...
您正在使用Activeworkbook
。 當您添加新工作簿時,新工作簿將成為您的活動工作簿:)
第二個問題是前DOT .Sheets.Count
在wb.Sheets(.Sheets.Count)
為什么從要復制的工作簿中選擇計數?
嘗試這個
Sub Sample()
Dim thiswb As Workbook, wb As Workbook
Dim newtab As Worksheet
Set thiswb = ThisWorkbook
Set wb = Workbooks.Add()
With thiswb
.Sheets("Sample Attendance").Copy After:=wb.Sheets(wb.Sheets.Count)
Set newtab = wb.Sheets(wb.Sheets.Count - 1)
End With
End Sub
試一下:
Sub SheetCopier()
Dim OriginalWB As Workbook
Dim NewWB As Workbook
Set OriginalWB = ActiveWorkbook
Workbooks.Add
Set NewWB = ActiveWorkbook
OriginalWB.Sheets("qwerty").Copy Before:=NewWB.Sheets(1)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.