0
我想複製多個工作表到新工作簿,從範圍(A3)開始到每個表的表結尾,因此使用了以下代碼,但它複製了整個工作表。vba將單元格區域複製到新工作簿
Private Sub Copytonewworkbook_Click()
Dim NewName As String
Dim nm As name
Dim ws As Worksheet
If MsgBox("Copy specific sheets to a new workbook" & vbCr & _
"New sheets will be pasted" , vbYesNo, "NewCopy") = vbNo Then
Exit Sub
With Application
.ScreenUpdating = False
On Error GoTo ErrCatcher
Sheets(Array("Payroll", " Bank Letter")).Copy
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
ws.Cells(3,33)Paste:=xlCellTypeFormulas
Application.CutCopyMode = False
Cells(1, 1).Select
ws.Activate
Next ws
Cells(1, 1).Select
For Each nm In ActiveWorkbook.Names
nm.Delete
Next nm
NewName = InputBox("Please Specify the name of your new workbook", "New Copy")
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & NewName & ".xls"
ActiveWorkbook.Close SaveChanges:=False
.ScreenUpdating = True
End With
Exit Sub
ErrCatcher:
MsgBox "Specified sheets do not exist within this workbook"
End Sub
謝謝Vityata,複製到一個現成的表在同一工作簿時,這個好辦法,但我想要做的是按照我的代碼,將基於定義範圍的多個工作表複製到新工作簿中,但需要更正才能在此行中專門做這些工作(ws.Cells(3,33)Paste:= xlCellTypeFormulas) –
@NabilAmer - 請參閱版本。一般來說,確實有更聰明的方法來做到這一點,但你應該改變你的整個代碼。這實際上是一個15分鐘的工作。 – Vityata
請問如果可能的話,請在我的代碼中進行更改 –