每次创建新行时,为列设置默认值

时间:2014-04-15 14:09:55

标签: google-apps-script google-sheets google-form

我有一个Google表单设置,将响应放入Google电子表格中,我在表格中添加了一些额外的列,以帮助我们监控每个响应的状态。有没有一种方法可以在每次创建新行时为列设置默认值? (即每次提交新的回复)。下面是我到目前为止的代码,但目前它只用于一行。

function setDefault() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastRow = ss.getLastRow();

 for (var i = 3; i <= lastRow; i++)
 {
   sheet.getRange('A' + i).activate();
   var value = sheet.getActiveCell().getValue();

   while (value != "")
   {
    sheet.getActiveCell().offset(0, 5).activate();
    sheet.getActiveCell().setValue("Unknown");
    sheet.getActiveCell().offset(0, 1).activate();
    sheet.getActiveCell().setValue("New");

   } 
 } 

};

2 个答案:

答案 0 :(得分:0)

我使用以下代码解决了它,并将项目触发器设置为“On form submitted”,以便每次提交新响应时都会运行。

function setDefault() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastRow = ss.getLastRow();

 for (var i = 3; i <= lastRow; i++)
 {
   sheet.getRange('A' + i).activate();

    sheet.getActiveCell().offset(0, 5).activate();
    sheet.getActiveCell().setValue("Unknown");
    sheet.getActiveCell().offset(0, 1).activate();
    sheet.getActiveCell().setValue("New");


 } 

};

答案 1 :(得分:0)

如果您手动编辑电子表格或用户编辑其响应,那么通过最后一行的方法可能会遇到表单提交不总是最后一行的麻烦!这发生在时间> <“

我建议另一种方法,请尝试以下方法:

function onFormSubmit(e){
      var r = e.range.rowStart;
      Logger.log(r);
  }
}

实际上,您只需注销变量“ e”以查找更多提交信息@@ b