Google Apps Script - FUNCTION重命名具有特定单元格值的所有工作表



我使用此函数根据B4中的单元格值重命名活动工作表-但我想为整个电子表格这样做,每个工作表应重命名为B4中自己的特定单元格值。谁能告诉我如何实现这与FOR循环,例如?!谢谢!

function RenameSheetsM() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet(); // active Sheet = Tab
  var cell = sheet.getRange("B4");// cell B4 = Name  
  var value = cell.getValue();//Added
  sheet.setName(value);//Sheet name changed
}
function RenameSheetsM() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  for (i=0; i<sheets.length; i++) {
    var value = sheets[i].getRange("B4").getValue();
      if(sheets[i].getName() != value){
        sheets[i].setName(value);
      }    
  }
}

可以是这样的:

function main() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  for (let sheet of sheets) {
    RenameSheetsM(sheet);
  }
}
function RenameSheetsM(sheet) {
  var cell = sheet.getRange("B4");// cell B4 = Name  
  var value = cell.getValue();//Added
  sheet.setName(value);//Sheet name changed
}

但是我更喜欢循环while(),它看起来很整洁:

function main() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  while (sheets.length) {
    var sheet = sheets.shift();
    var cell = sheet.getRange("B4");
    var value = cell.getValue();
    sheet.setName(value);
  }
}

重命名电子表格中的所有工作表

function  renameSheets() {
  SpreadsheetApp.getActive().getSheets().forEach(sh => sh.setName(sh.getRange('B4').getDisplayValue()));
}

最新更新