2

This script is currently taking 45 sec to run, Any thoughts on enhancing the performance on this?

function main(workbook: ExcelScript.Workbook) {
  try {
  const sheets = workbook.getWorksheets();
  for (let sheet of sheets) {
  const breakCol = sheet.getUsedRange(true);
      const values = breakCol.getValues();
      for (let row of values) {
        for (let cell of row) {
          breakCol.replaceAll("Pass", "", { completeMatch: true });
          breakCol.replaceAll("Fail", "", { completeMatch: true });
          breakCol.replaceAll("Skip", "", { completeMatch: true });
        }
      }
     }
}
catch (e) {
  }
}
Brian Gonzalez
  • 1,178
  • 1
  • 3
  • 15
sai charan
  • 195
  • 13

1 Answers1

0

Found the best performing way took 1.3 secs to execute:

function main(workbook: ExcelScript.Workbook) {
  let selectedSheet = workbook.getWorksheets();
  const activeWorksheetcount = workbook.getWorksheets().length;
  for (let i = 0; i < activeWorksheetcount; i++) {
    selectedSheet[i].replaceAll("Pass", "", { completeMatch: true, matchCase:true });
    selectedSheet[i].replaceAll("Fail", "", { completeMatch: true, matchCase:true });
    selectedSheet[i].replaceAll("Skip", "", { completeMatch: true, matchCase:true });
  }
}
Stephen Ostermiller
  • 23,933
  • 14
  • 88
  • 109
sai charan
  • 195
  • 13