【问题标题】:Set Default value for column each time a new row is created每次创建新行时为列设置默认值
【发布时间】:2014-04-15 14:09:55
【问题描述】:

我设置了一个 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");

   } 
 } 

};

【问题讨论】:

  • this 有帮助吗?

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


【解决方案1】:

我使用以下代码解决了这个问题,并将项目触发器设置为“提交表​​单时”,以便每次提交新响应时它都会运行。

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");


 } 

};

【讨论】:

    【解决方案2】:

    如果您手动编辑电子表格或用户编辑他的回复,则通过最后一行的方法可能会遇到问题,即表单提交并不总是最后一行!这发生在时间>

    我建议另一种方法,试试这个:

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

    其实你可以直接注销变量“e”来查看更多的提交信息@@b

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      相关资源
      最近更新 更多