23
2023
01

Replace @1 @2 to Style Name in breakdown list

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
}


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。