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

如何通过GAS脚本将数据保存到指定列的下一个可用行

实现说明

需求为将源工作表指定单元格的数据,写入目标工作表指定列现有数据下方的第一个空行,示例目标列为A列。
原有脚本的问题:targetSS.getLastRow()获取的是整个工作表全局最后一行有数据的行号,并非指定列的最后非空行,若其他列存在比目标列更靠下的数据,会导致写入位置错位。

修正后可直接运行的脚本
function transferList() {
  // 可按需修改的配置项
  const TARGET_COL = 1; // 目标列序号,A列对应1,B列对应2,以此类推
  const sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cancellations");
  const sourceData = sourceSheet.getRange("D5").getValues();
  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet12");

  // 精准获取目标列的最后一个非空行号
  const targetColLastRow = targetSheet
    .getRange(1, TARGET_COL, targetSheet.getMaxRows(), 1)
    .getValues()
    .filter(cellVal => cellVal[0] !== "")
    .length;

  // 从目标列下一个空行开始写入数据
  targetSheet
    .getRange(targetColLastRow + 1, TARGET_COL, sourceData.length, sourceData[0].length)
    .setValues(sourceData);
}
自定义修改方式
  • 若需要调整写入的目标列,直接修改TARGET_COL的数值即可,例如要写入C列就将值改为3
  • 若需要调整源数据位置、源/目标工作表名称,直接替换对应位置的工作表名、单元格范围参数即可
  • 该逻辑不受工作表其他列的数据位置影响,会始终在指定列的现有数据末尾追加内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:39:39