Maybe try this
Function convertRunNumber()
{ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = Math.min(8000, sheet.getLastRow()); // Limit to 8000 rows or the last row with data
For (var x = 1; x <= lastRow; x++) { var runNum = sheet.getRange(x, 1).getValue(); // Get value from column A
If (runNum) { // Check if the cell has a value
var newRunNum = String(runNum).substring(0, 8); // Extract the first 8 characters
sheet.getRange(x, 2).setValue(newRunNum); // Write to column B
If (x === 2){ // Added to replicate the Range("B2").value=Newrunnum part of the vba code. sheet.getRange(2,2).setValue(newRunNum);
} sheet.getRange(x, 2).setNumberFormat("0"); // Set number format to integer
}
}
}