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

请求修复Google Sheets脚本:将I6内容写入G列首个空白单元格

修复后的Google Sheets脚本

要实现将Input表I6的内容写入Trades表G列的首个空白单元格,需要修改原脚本中定位目标单元格的逻辑,同时修正列号的错误(原脚本指向H列而非G列)。修复后的代码如下:

function SubmitData01() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Input"); 
  var datasheet = ss.getSheetByName("Trades");
  
  var valueToWrite = formSS.getRange("I6").getValue();
  
  // 获取G列所有行的数值(从第1行到工作表最大行)
  var gColumnValues = datasheet.getRange(1, 7, datasheet.getMaxRows(), 1).getValues();
  var firstEmptyRow = -1;
  
  // 遍历G列,找到第一个空白单元格对应的行号
  for (var i = 0; i < gColumnValues.length; i++) {
    if (gColumnValues[i][0] === "") {
      firstEmptyRow = i + 1; // 转换为工作表的行号(数组索引从0开始)
      break;
    }
  }
  
  // 若G列无空白单元格,将内容追加到列的末尾
  if (firstEmptyRow === -1) {
    firstEmptyRow = datasheet.getLastRow() + 1;
  }
  
  // 将内容写入G列的首个空白单元格
  datasheet.getRange(firstEmptyRow, 7).setValue(valueToWrite);
  
  formSS.getRange('C6:F6').clearContent();
}

关键修改说明

  • 修正列号:原脚本中datasheet.getRange(..., 8, ...)指向的是H列(第8列),改为7对应G列
  • 精准定位首个空白单元格:通过遍历G列所有单元格,从上到下找到第一个空值的位置,解决了原脚本只能写入列末尾的问题
  • 边界处理:当G列所有单元格都有内容时,自动将内容追加到列的最后一行
  • 性能优化:单个值写入使用setValue(),比原脚本的二维数组setValues()更简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:40:31