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

Google Sheets宏问题:点击按钮无法逐行记录日期与单元格值

解决Google Sheets宏重复写入首行的问题

你的问题根源在于代码硬指定了A1和B1单元格,所以每次点击都会覆盖第一行数据。要实现每次写入下一行,核心是动态定位History表的下一个空行,具体修改方案如下:

直接替换成这段代码即可:

function Save1() {
  var spreadsheet = SpreadsheetApp.getActive();
  // 定位到目标工作表'History'
  var historySheet = spreadsheet.getSheetByName('History');
  
  // 计算下一个可写入的行号:已使用的最后一行+1
  var nextRow = historySheet.getLastRow() + 1;
  
  // 处理日期,清零时分秒
  var date = new Date();
  date.setHours(0, 0, 0, 0);
  
  // 将日期写入History表A列的下一行
  historySheet.getRange(nextRow, 1).setValue(date);
  
  // 获取'Daily Tracker'表B13的当前值,写入History表B列对应行
  var dailyValue = spreadsheet.getSheetByName('Daily Tracker').getRange('B13').getValue();
  historySheet.getRange(nextRow, 2).setValue(dailyValue);
}

核心改动说明:

  • 不再硬编码A1、B1,改用getLastRow()+1自动获取下一个空行,实现逐行追加
  • 直接定位工作表和单元格,去掉了宏录制生成的activate操作(代码里无需模拟手动选中,直接操作更高效)
  • 原代码用setFormula会让B列单元格始终关联Daily Tracker!B13,这里用getValue保存的是点击瞬间的静态值;如果需要保持公式关联,把最后一行改成historySheet.getRange(nextRow, 2).setFormula('=\'Daily Tracker\'!B13')即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:42:08