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

Google Sheets筛选视图中onEdit函数失效问题求助

问题解决方法

你的问题出在当行被全局筛选隐藏但通过筛选视图显示时,直接使用行号定位单元格的方式不够可靠。可以通过以下修改让onEdit函数正常工作:

修改后的代码

function onEdit(e){
  const row = e.range.getRow();
  const col = e.range.getColumn();
  const FIXEDROW = 1;
  const SHEET_NAME = "School Log";
  const BACKDATE_COL = 13;
  const DATE_MODIFIED_COLUMN = 14;
  const targetSheet = e.range.getSheet();

  if (targetSheet.getName() === SHEET_NAME && col === BACKDATE_COL && row > FIXEDROW){
    const CURRENT_DATE = new Date();
    // 使用offset直接定位到当前编辑单元格的同一行目标列,避免行号筛选偏差
    e.range.offset(0, DATE_MODIFIED_COLUMN - BACKDATE_COL).setValue(CURRENT_DATE);
  }
}

修改说明

  1. 用e.range.getSheet()替代e.source.getActiveSheet():直接获取编辑单元格所属的工作表,比通过活跃工作表定位更精准,避免切换工作表时的错误。
  2. 使用offset()方法定位目标列:通过当前编辑单元格(M列)偏移固定列数的方式,直接定位到N列单元格,完全绕开筛选状态下的行号匹配问题,无论行是否被全局筛选隐藏,都能准确设置对应行的时间戳。

这样修改后,无论你在全局筛选显示的行,还是通过筛选视图查看的隐藏行中编辑M列,N列都会正确生成时间戳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:00:07