Я хочу скопировать несколько листов в новую книгу, начиная с диапазона (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
Не могли бы вы, если возможно, внести изменения в мой код? –