Google 表单回复清除单元格的 onEdit 表单脚本

Google sheets script onEdit of form response clear cells

我正在尝试在表单编辑时为 运行 创建一个 Google 脚本,但不确定当有人通过 Google 稍后编辑 URL 并添加新答案。

我需要抓取他们的响应所在的行并仅清除单元格 AO、AP、AQ 和 AR 的内容。

我知道这一定是一团糟,但我正在努力。这是我目前所拥有的:

function onEdit(e) {
      var sheet = SpreadsheetApp.getActiveSheet();
      var editRange = sheet.getActiveRange();
      var editRow = editRange.getRow();
      var editCol = editRange.getColumn();
      var range = sheet.getRange("A2:AL");
      var rangeRowStart = range.getRow();
      var rangeRowEnd = rangeRowStart + range.getHeight()-1;
      var rangeColStart = range.getColumn();
      var rangeColEnd = rangeColStart + range.getWidth()-1;

      if (editRow >= rangeRowStart && editRow <= rangeRowEnd 
             && editCol >= rangeColStart && editCol <= rangeColEnd)
    {
        var ss = e.range.getSheet();

        ss.getRange(thisRow,"AO" & i & ":AR" & i) // Get cells in range AO,AP,AQ,AR to clear out
              .clearContent();
     }
};

我重新开始了。我有这个脚本在工作,但还不是完全需要的方式。我只需要它来清除 firstdate != secdate 所在行的单元格 (AH) 的内容。现在,当一个单元格满足条件时,它会清除 AH 列的所有单元格。

function compareClear() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName("Sheet1");
      var firstdate = sheet.getRange("E3:E").getValues();
      var secdate = sheet.getRange("AG3:AG").getValues();

      if(firstdate != secdate){
            SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("AH3:AH").clearContent();
      }
 }

以防其他人在这个问题上需要帮助:

Google Docs 论坛中 Spencer 的大力帮助以及我添加的一些更改的脚本非常有效。它可能不是最漂亮的脚本,但它满足了我的需要。

function compareClear() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Form Responses 1");
    var firstdate;
    var secdate;

    for (var i = 3; i < sheet.getLastRow(); i++) {
        firstdate = new Date(sheet.getRange(i, 4).getValue());
        secdate = new Date(sheet.getRange(i, 45).getValue());

        if(firstdate > secdate){
               sheet.getRange(i, 41).clearContent();
               sheet.getRange(i, 42).clearContent();
               sheet.getRange(i, 43).clearContent();
               sheet.getRange(i, 44).clearContent();
         }
     }
 }