Try the following script:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Delete range E:F on selectedSheet
selectedSheet.getRange("E:F").delete(ExcelScript.DeleteShiftDirection.left);
// Auto fit the columns of all cells on selectedSheet
selectedSheet.getRange().getFormat().autofitColumns();
// Insert at range B:B on selectedSheet, move existing cells right
selectedSheet.getRange("B:B").insert(ExcelScript.InsertShiftDirection.right);
// Set range B1 on selectedSheet
selectedSheet.getRange("B1").setValue("Undeliverable Date");
// Insert at range D:D on selectedSheet, move existing cells right
let columnToInsert = selectedSheet.getRange("D:D");
columnToInsert.insert(ExcelScript.InsertShiftDirection.right);
columnToInsert.insert(ExcelScript.InsertShiftDirection.right);
columnToInsert.insert(ExcelScript.InsertShiftDirection.right);
// Text to columns on range C1:C33 on selectedSheet
let lastRow = (selectedSheet.getUsedRange().getLastRow().getRowIndex() + 1).toString();
let sourceRange = selectedSheet.getRange("C1:C" + lastRow);
let sourceRangeRowCount = sourceRange.getRowCount();
let destinationRange = selectedSheet.getRange("D1");
for (let row = 0; row < sourceRangeRowCount; row++) {
let sourceRangeValuesArray = sourceRange.getRow(row).getValues()[0][0].toString().split(/[\t ]/)
let sourceRangeValues = [sourceRangeValuesArray[0], sourceRangeValuesArray[1], sourceRangeValuesArray.slice(2, sourceRangeValuesArray.length).join(" ")];
destinationRange.getOffsetRange(row, 0).getResizedRange(0, sourceRangeValues.length - 1).setValues([sourceRangeValues]);
}
// Set range C1:F1 on selectedSheet
selectedSheet.getRange("C1:F1").setValues([["Full Name", "First Name", "Middle Name", "Last Name"]]);
// Text to columns on range K1:K33 on selectedSheet
sourceRange = selectedSheet.getRange("K1:K" + lastRow);
sourceRangeRowCount = sourceRange.getRowCount();
destinationRange = selectedSheet.getRange("L1");
for (let row = 0; row < sourceRangeRowCount; row++) {
let sourceRangeValues = sourceRange.getRow(row).getValues()[0][0].toString().split(/[\t,]/)
destinationRange.getOffsetRange(row, 0).getResizedRange(0, sourceRangeValues.length - 1).setValues([sourceRangeValues]);
}
// Text to columns on range H1:H76 on selectedSheet
sourceRange = selectedSheet.getRange("H1:H" + lastRow);
sourceRangeRowCount = sourceRange.getRowCount();
destinationRange = selectedSheet.getRange("H1");
for (let row = 0; row < sourceRangeRowCount; row++) {
let sourceRangeValues = sourceRange.getRow(row).getValues()[0][0].toString().split(/[\t,]/)
destinationRange.getOffsetRange(row, 0).getResizedRange(0, sourceRangeValues.length - 1).setValues([sourceRangeValues]);
}
// Set range K1 on selectedSheet
selectedSheet.getRange("K1").setValue("Country");
}
The main thing I tried to do was reduce the number of calls to getRange. For example, in your original script, you define sourceRange and destinationRange within your for loops, but those variables don't actually change over the course of the loop, so moving those definitions outside should improve performance.
Let me know if that helps, or if you have any questions!