Look for blocks of code like this
Sheets("Macro").Select
'
'
'
Range("A4").Select
ActiveCell.End(xlDown).Select
Endrow = ActiveCell.Row
Think about that it is doing and you can see that this does the same thing.
With Sheets("Macro")
'
'
'
EndRow = .Range("A4").End(xlDown).Row
you have to be carwful because when you see this
Sheets("Cover").Copy After:=Workbooks(new_wbk).Sheets("Macro")
Sheets("Cover").Select
YOu have to know which workbook the Selected "Cover" sheet is in. Or you can specify
Workbooks(new_wbk).Sheets("Cover")
' or
THisWorkbook.Sheets("Cover")
Normally, you can just delete all
and just insure that you leave one dot where the deletion occured. But in a case of Multiple uses of Selection with one Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
It's easiest to use a With Statement
With Cells
.Copy
.Paste Special...
.PasteSpecial...
End With