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

如何修改Google Sheets脚本实现多工作表同步生成递增序号

修正后支持3个工作表的完整脚本

function uPDATEiT() {
  // 工作表参数配置,后续改规则/加表直接修改该数组即可
  const SHEET_CONFIG = [
    { name: 'Sheet1', startRow: 2, checkCol: 'C' }, // Sheet1从第2行开始,校验C列是否有内容
    { name: 'Sheet2', startRow: 6, checkCol: 'C' }, // 不需要校验对应列的话可把checkCol设为空字符串
    { name: 'Sheet3', startRow: 6, checkCol: 'C' }
  ]
  const aiColumnName = 'A' // 所有表序号统一写入A列
  const ss = SpreadsheetApp.getActiveSpreadsheet()

  // 遍历每个工作表单独处理逻辑
  SHEET_CONFIG.forEach(config => {
    const worksheet = ss.getSheetByName(config.name)
    if (!worksheet) return // 跳过不存在的工作表

    const lastRow = worksheet.getLastRow()
    // 仅读取起始行到最后有数据的行,减少无效计算
    const aiColRange = worksheet.getRange(aiColumnName + config.startRow + ':' + aiColumnName + lastRow)
    const aiCol = aiColRange.getValues()
    const aiColIndex = aiColRange.getColumn()
    const reqCol = config.checkCol ? worksheet.getRange(config.checkCol + config.startRow + ':' + config.checkCol + lastRow).getValues() : []

    // 计算当前表已有的最大序号
    let maxSeq = 0
    for (let i = 0; i < aiCol.length; i++) {
      const currentVal = parseInt(aiCol[i][0], 10)
      if (!isNaN(currentVal) && currentVal > maxSeq) {
        maxSeq = currentVal
      }
    }

    // 给符合条件的空行填充递增序号
    for (let i = 0; i < aiCol.length; i++) {
      const hasReqValue = config.checkCol ? ('' + reqCol[i][0]).length > 0 : true
      const aiIsEmpty = ('' + aiCol[i][0]).length === 0
      if (hasReqValue && aiIsEmpty) {
        maxSeq++
        worksheet.getRange(i + config.startRow, aiColIndex).setValue(maxSeq)
      }
    }
  })
}

核心调整说明

  • 修复原代码getSheetByName传参错误问题,该方法仅支持传入单个工作表名,改为遍历配置列表逐个处理工作表
  • 新增工作表独立配置项,可自定义每个表的起始行、校验列,适配Sheet1从第2行、Sheet2/Sheet3从第6行开始的需求
  • 优化数据读取范围,不再固定读取1000行,仅读取有数据的区间,运行效率更高
  • 修复原代码数组越界问题,原循环条件i <= aiCol.length会超出数组索引范围,调整为i < aiCol.length
  • 新增序号非数字判断逻辑,避免非数字内容干扰最大序号计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:04