Finally i got it works but how can i make it generate 3 excel instead of oneOption Explicit Sub CopyWorksheetValues() Dim ws As Worksheet Dim WS_Count As Integer Dim I As Integer Dim folderPath As String folderPath = Application.ThisWorkbook.Path Worksheets(Array("Keep1", "Keep2")).Copy With ActiveWorkbook WS_Count = .Worksheets.Count For I = 1 To WS_Count .Sheets(I).UsedRange.Value = .Sheets(I).UsedRange.Value Next .SaveAs Filename:=folderPath & "\New3.xlsx", FileFormat:=xlOpenXMLWorkbook .Close SaveChanges:=False End With End Sub