function DeleteEmptyExcelSheets(excelObject)
try
worksheets = excelObject.sheets;
sheetIndex = 1;
sheetIndex2 = 1;
initialNumberOfSheets = worksheets.Count;
excelObject.EnableSound = false;
excelObject.DisplayAlerts = false;
while sheetIndex2 <= initialNumberOfSheets
preDeleteSheetCount = worksheets.count;
if or(sheetIndex>1,initialNumberOfSheets-sheetIndex2>0)
if worksheets.Item(sheetIndex).UsedRange.Count == 1
worksheets.Item(sheetIndex).Delete;
end
end
postDeleteSheetCount = worksheets.count;
if preDeleteSheetCount == postDeleteSheetCount;
sheetIndex = sheetIndex + 1;
else
end
sheetIndex2 = sheetIndex2 + 1;
end
excelObject.EnableSound = true;
catch ME
errorMessage = sprintf('Error in function DeleteEmptyExcelSheets.\n\nError Message:\n%s', ME.message);
fprintf('%s\n', errorMessage);
WarnUser(errorMessage);
end
return;
end
Best Answer