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

如何在Google Sheets中保护首列并通过第二列触发自动填日期

Google表格:编辑第二列自动填充第一列并锁定第一列的解决方案

核心思路

通过范围保护限制编辑者修改第一列,同时使用以所有者身份运行的可安装触发器,让脚本能绕过保护自动填充日期,实现只有第二列触发时才能修改第一列的需求。


步骤1:给第一列设置范围保护

  1. 打开目标表格,选中第一列(如A列)
  2. 右键选择「保护范围」,在右侧弹出的面板点击「设置保护」
  3. 在「权限」选项卡中,选择「限制编辑」
  4. 点击「添加编辑者」,只添加你自己(表格所有者),其他编辑者一律不添加
  5. 保存设置,此时普通编辑者手动修改第一列会被提示无权限

步骤2:调整脚本与触发器(关键:确保脚本以所有者权限运行)

如果之前用的是简单onEdit触发器,会因为编辑者无权限修改第一列而执行失败,需要换成可安装触发器:

  1. 打开Apps Script编辑器,替换原有代码为:
function autoFillDate(e) {
  const editedRange = e.range;
  // 仅响应第二列(B列)的编辑,且排除表头行(假设表头在第1行)
  if (editedRange.columnStart === 2 && editedRange.rowStart > 1) {
    const targetSheet = editedRange.getSheet();
    const dateCell = targetSheet.getRange(editedRange.rowStart, 1);
    // 仅当第一列为空时填充当前日期,避免重复覆盖
    if (!dateCell.getValue()) {
      dateCell.setValue(new Date());
      // 可选:设置日期格式,比如"yyyy-MM-dd"
      dateCell.setNumberFormat("yyyy-MM-dd");
    }
  }
}
  1. 创建可安装触发器:
    • 点击左侧菜单栏的「触发器」图标
    • 点击「添加触发器」,配置如下:
      • 选择要运行的函数:autoFillDate
      • 选择部署类型:「头部部署」
      • 选择事件来源:「从电子表格」
      • 选择事件类型:「编辑时」
    • 点击保存,按提示完成所有者账号的授权

验证效果

  • 普通编辑者在第二列输入内容时,第一列会自动填充当前日期
  • 编辑者尝试手动修改第一列时,会弹出「无编辑权限」的提示
  • 你作为所有者,仍可手动修改第一列(如果需要)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:31:12