Google Sheets Дублировать лист переименовать его - PullRequest
0 голосов
/ 12 марта 2020

Итак, у меня есть два листа «Программа», в первой ячейке каждой строки, начиная с строки 4, есть имя каждого нового листа, который я хочу создать. Я пытался продублировать свой лист «Шаблон», а затем возвращался к листу «Программа», чтобы найти первую ячейку каждой строки, чтобы дать «Копию шаблона» новое имя. Это то, что у меня есть, но я не получаю никаких ошибок и ничего не делает ...: (

function duplicate() {
  var ss = SpreadsheetApp.getActive();
  ss.setActiveSheet(ss.getSheetByName('Program'), true);

  function readRows() {
  var sheet = SpreadsheetApp.getSheetByName('Program');
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValue();

  for (var i = 4; i <= numRows - 1; i++) {
    var row = values[i];
    Logger.log(row);


  ss.setActiveSheet(ss.getSheetByName('Template'), true);
  ss.duplicateActiveSheet();
  ss.setActiveSheet(ss.getSheetByName('Copy of Template'), true).setName('row');
  }
}; 
};

1 Ответ

1 голос
/ 12 марта 2020

Попробуйте это:

function duplicate() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Program');
  var tsh=ss.getSheetByName('Template');
  var sr=4;
  var vA=sh.getRange(sr,1,sh.getLastRow()-sr+1,1).getValues();
  for (var i=0;i<vA.length;i++) {
    ss.insertSheet(vA[i][0], {template:tsh});
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...