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

如何用单个onEdit()函数实现多工作表按C列触发排序?

解决方案

可以用单个onEdit()函数实现多工作表的触发排序需求,修改后的代码如下:

function onEdit(e) {
  multiSortColumns(e);
}

function multiSortColumns(e) {
  // 定义需要触发排序的工作表名称列表
  const targetSheets = ['FASHION NL', 'Sheet2', 'Sheet3']; // 替换为你的目标工作表名
  const editedSheet = e.source.getActiveSheet();
  
  // 检查编辑的列是否为C列(第3列)、单元格不为空,且当前工作表在目标列表中
  if (e.range.columnStart === 3 && e.range.getValue() !== '' && targetSheets.includes(editedSheet.getName())) {
    // 定义需要排序的范围(根据你的需求调整)
    const sortRange = editedSheet.getRange("A5:bY600");
    // 按第11列(K列)升序排序
    sortRange.sort({column: 11, ascending: true});
    e.source.toast('排序完成。');
  }
}

关键修改说明:

  • 目标工作表列表:通过targetSheets数组指定所有需要触发排序的工作表名称,只需添加或移除名称即可调整范围。
  • 动态获取当前工作表:使用e.source.getActiveSheet()获取触发编辑事件的工作表,避免硬编码单个工作表名。
  • 条件判断:新增对当前工作表是否在目标列表中的检查,确保只有指定工作表的C列编辑才会触发排序。

这样你就不需要为每个工作表复制脚本,只需维护一个函数即可实现多工作表的排序触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:55:25