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

如何在Google Apps Script中合并多个onEdit函数?

问题说明

我通过Google表单填充Google表格内容,同时手动在同一表格的多列中输入数据。我有两个不同的onEdit相关函数,单独运行时均正常工作,但在同一表格中尝试合并后,仅能生效其中一个。两个功能如下:

  • 基于其他单元格的值自动生成时间戳
  • 将表格字体调大(Google表单填充的内容字体总是比期望的小)

以下是我的代码:

时间戳函数

function onEdit(e) {
  var row = e.range.getRow();
  var col = e.range.getColumn();

  if(col === 31)
    e.source.getActiveSheet().getRange(row,30).setValue(new Date());

  if(col === 34)
    e.source.getActiveSheet().getRange(row,33).setValue(new Date());
}

字体设置函数

function onEdit1() {
   var ss=SpreadsheetApp.getActiveSpreadsheet();
   var sheets=ss.getSheets();
   for (var i in sheets) {
     sheets[i].getRange(1,1,sheets[i].getMaxRows(),sheets[i].getMaxColumns()).setBackground('#ffffff').setFontSize(14).setFontFamily("Arial").setFontWeight("bold");  
   }
}
解决方案

核心问题

Google Apps Script的简单编辑触发器只会自动触发名为onEdit的函数,onEdit1这类自定义命名的函数不会在编辑表格时自动运行,这就是合并后只有一个功能生效的原因。

合并后的优化代码

把两个功能整合到同一个onEdit函数中,同时优化字体设置逻辑(避免每次编辑都遍历全表所有单元格,提升性能):

function onEdit(e) {
  var range = e.range;
  var sheet = range.getSheet();
  var row = range.getRow();
  var col = range.getColumn();

  // 1. 时间戳生成逻辑
  if(col === 31) {
    sheet.getRange(row, 30).setValue(new Date());
  }
  if(col === 34) {
    sheet.getRange(row, 33).setValue(new Date());
  }

  // 2. 字体格式设置逻辑:仅处理当前编辑的行,而非全表
  var editedRowRange = sheet.getRange(row, 1, 1, sheet.getLastColumn());
  editedRowRange.setBackground('#ffffff')
               .setFontSize(14)
               .setFontFamily("Arial")
               .setFontWeight("bold");
}

补充:处理表单提交的字体问题

上面的代码只在手动编辑表格时生效,Google表单提交的内容不会触发onEdit简单触发器。如果要让表单提交的内容也自动应用字体格式,需要添加可安装的表单提交触发器:

  1. 打开表格的脚本编辑器(工具 > 脚本编辑器)
  2. 添加以下函数:
function onFormSubmit(e) {
  var range = e.range;
  // 对表单提交的行应用格式
  range.setBackground('#ffffff')
       .setFontSize(14)
       .setFontFamily("Arial")
       .setFontWeight("bold");
}
  1. 设置触发器:点击编辑器左侧的「触发器」图标 > 添加触发器 > 选择onFormSubmit函数,事件源选「电子表格」,事件类型选「表单提交」,保存即可。

内容的提问来源于stack exchange,提问作者J.S. McGinnis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:00:59