Google脚本,用于根据现有工作表的每一行复制带有数据的选项卡

时间:2018-04-05 12:27:14

标签: google-sheets

所以我正在研究Payroll sheet,并希望能够自动生成paystubs。我有一个概述表,每周的工资和扣除额在不同的行上,每个工资期间有一行。然后我有一个paystub模板,它接受一个工作周输入(单元格O3)并填充单行数据。

我正在寻找的是能够按需复制模板,并让它自动填充列O3与特定的工作周。就像一个可以创建52个副本的for循环,每个副本都有一个唯一的名称(即Paystub_WW01),以及O3中的不同顺序值。我开始用this弄乱一轮。

1 个答案:

答案 0 :(得分:0)

这就是我提出的并且有效:

function CreateNewPaystub() {

  //var declaration
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var template = ss.getSheetByName('PayStub_Template');
  var workweekRange = ss.getRange("Weekly!B3:B14");
  var workweekObjects = workweekRange.getValues();

  //loop through all work weeks to create duplicate tempaltes
  for (var i = 0; i < workweekObjects.length; i++) {

    // The code below makes a duplicate of the active sheet
    var sheet = ss.getSheetByName('Paystub_WW' + workweekObjects[i]);

      //check if it exists
      if (sheet) {
         Logger.log("Sheet " + workweekObjects[i] + "already exists");
        } else {
           template.copyTo(ss).setName('Paystub_WW' + workweekObjects[i]);
           ss.getSheetByName('Paystub_WW' + workweekObjects[i]).getRange('O3').setValue(workweekObjects[i]);
           }
        }
  return;  
}