Local $fReadOnly = True Local $fVisible = False ; True ; show excel Global $oExcel = ObjCreate("Excel.Application") If @error Then MsgBox(262144 + 16, @ScriptName, "MS Office may not be installed") Exit EndIf With $oExcel Local $sFileFullPath = FileOpenDialog("Select Excel Workbook", "", "xlsx (*.xlsx)", 3) If $sFileFullPath <> "" Then .Workbooks.Open($sFileFullPath, False, $fReadOnly) If @error Then Exit Local $sFileName = StringRegExpReplace($sFileFullPath, '[\w:]+\\', '') ; remove path to get just file name Local $aSheets[.ActiveWorkbook.Sheets.Count +1] $aSheets[0] = .ActiveWorkbook.Sheets.Count For $i = 1 To $aSheets[0] $aSheets[$i] = .ActiveWorkbook.Sheets($i).Name $avReadData[$i] = _ExcelReadSheetToArray($aSheets[i]) Next .Visible = $fVisible .Application.DisplayAlerts = False For $i = 1 To $aSheets[0] .WorkBooks.Add ; insert sheet($i) from workbook $sFileName before sheet1 of newly created workbook .Application.Workbooks($sFileName).Sheets($i).Copy(.Application.ActiveWorkbook.Sheets(1), Default) _ExcelWriteSheetFromArray($oExcel, $avReadData[i]) For $j = 1 To 3 .WorkSheets("Sheet" & $j).Delete Next .ActiveWorkBook.SaveAs (@ScriptDir & "\" & $aSheets[$i]) .ActiveWorkbook.Close Next .Quit EndWith Exit