You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets提交按钮脚本:允许提交值为0的单元格

解决Google Sheets脚本中0被误判为空的问题

你的脚本里,filter(e => e)会把0这类假值直接过滤掉,导致即便是合法的0也会被当成空字段触发错误。只要调整判断逻辑,只排除真正为空的单元格就能解决问题,修改后的脚本如下:

function Jan() {
  const ss = SpreadsheetApp.getActive();
  const fsh = ss.getSheetByName("sheet1");
  const dss = SpreadsheetApp.openById(gobj.globals.ssid);
  const dsh = dss.getSheetByName("sheet2");
  const rgl = fsh.getRangeList(["H2","D4","I5","J5","F24","F25","F26","F27","F28"]);
  
  // 空单元格标记为null,非空则取实际值
  let vs = rgl.getRanges().map(r => r.isBlank() ? null : r.getValue());
  // 只过滤掉null,保留0、false等有效值
  vs = vs.filter(e => e !== null);

  if (vs.length == rgl.getRanges().length) {
    // 用vs.length替代固定17,避免列数不匹配问题
    dsh.getRange(dsh.getLastRow() + 1, 1, 1, vs.length).setValues([vs]);
  } else {
    throw new Error ("REQUIRED FIELD IS EMPTY");
  }
}

修改说明:

  • 原map逻辑用rgl做空值标记不合理,改成null更直观
  • 过滤条件从filter(e => e)改为filter(e => e !== null),确保0、布尔值false这类合法值不会被误过滤
  • 把setValues里的固定列数17替换为vs.length,避免后续调整选取单元格数量时出现列数不匹配的错误

内容的提问来源于stack exchange,提问作者JohnnyMelou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:22:19