function replaceStyleNumberToName() {
var ui = SpreadsheetApp.getUi();
var response = ui.alert(`ColumnA data is original string/ number value (原來的文字/數字)
ColumnB data is new string value (新的文字)
ColumnJ data is Component Location~
**Don't enter the Data in row 1**
Are you sure you want to continue?`, ui.ButtonSet.YES_NO);
if(response != ui.Button.YES)
return;
var ColumnA = sheet.getRange(2,1,lastRow-1).getDisplayValues().map(arr => arr[0].trim()); //remove space to Column Data
var ColumnB = sheet.getRange(2,2,lastRow-1).getDisplayValues().map(arr => arr[0].trim()); //remove space to Column Data
var ColumnJ = sheet.getRange(2,10,lastRow-1).getDisplayValues().map(arr => arr[0].trim()); //remove space to Column Data
for(var index=0;index<ColumnA.length;index++) { //check empty row is exist or not
if(ColumnA[index] == "")
break;
}
if(ColumnA.filter(item => item != "").length != index) {
throw `A${index+2}存在空格~`
} //if exist empty rows, throw error to prevent wrong replacement.
ColumnA = ColumnA.slice(0,index).reverse(); //reverse the to_replace data
ColumnB = ColumnB.slice(0,index).reverse(); //reverse the replace_with data
for(var i=0;i<ColumnA.length;i++) {
ColumnJ = ColumnJ.map(item => item.split(ColumnA[i]).join(ColumnB[i])); //use for loop find and replaceAll
}
if(ColumnJ.length)
sheet.getRange(2,10,ColumnJ.length).setNumberFormat("@").setValues(ColumnJ.map(arr => [arr])); //set values
}