Google 表格脚本:如果 A 列已填充,则写入 E 列

Google Sheets Script: IF Column A is filled, THEN write in Column E

我有一个将条目插入 Google Sheet 的网络表单,所以我不能在 Sheet 的单元格中放置公式,否则表单将跳过排。我当前的脚本

function fillInTheBlank(e) 
{
  var row=e.range.getRow();  
  e.range.getSheet().getRange(row,5).setFormula('=IF(ISBLANK(A'+ row 
+',1)),"","ready")');
}

如果 A 列为空白忽略,否则用 "ready" 填充。

你已经很接近了,只需要在设置之前检查代码中的值:

function onEdit(e) {
  var col = e.range.getColumn();
  // check Ax for any truthy value
  if (e.range.offset(0, 1 - col).getValue()) {
    e.range.offset(0, 5 - col, 1, 1).setValue("ready");
  }
}

请注意,以上不需要触发器,因为它符合简单触发器的条件,onEdit

如果您打算绑定到 on form submit 触发器,则需要为其命名(例如 function addStatus(e)),并为其安装触发器。请注意,通常,A 列具有提交的时间戳,因此您无需检查它的值。相反,如果您的目标只是将 "ready" 添加到 just-added 表单旁边的列:

function addReady(e) {
  var numQs = e.range.getNumColumns();
  e.range.offset(0, numQs, 1, 1).setValue("ready");
}

范围偏移总是相对于左上角的单元格,因此偏移问题的数量并将选择减少到单个行和列给我们在同一行中的单元格,与问题相邻。