Google apps script 如何使用GoogleApps脚本查找列A中的最后一行并打印时间戳?

Google apps script 如何使用GoogleApps脚本查找列A中的最后一行并打印时间戳?,google-apps-script,google-sheets,timestamp,Google Apps Script,Google Sheets,Timestamp,我想在单击按钮后打印A列最后一行的时间戳,这样我就不需要使用快捷键CTRL+SHIFT+生成时间戳,如下面的屏幕截图所示: 这是我的剧本: function myFunction() { const dt = Utilities.formatDate(new Date(), 'Asia/Singapore', 'HH:mm:ss'); var ss = SpreadsheetApp.getActiveSheet (); var direction = SpreadsheetApp.

我想在单击按钮后打印A列最后一行的时间戳,这样我就不需要使用快捷键
CTRL+SHIFT+
生成时间戳,如下面的屏幕截图所示:

这是我的剧本:

function myFunction() {
  const dt = Utilities.formatDate(new Date(), 'Asia/Singapore', 'HH:mm:ss');
  var ss = SpreadsheetApp.getActiveSheet ();
  var direction = SpreadsheetApp.Direction
  var aLast = ss.getRange("A"+(ss.getLastRow()+1)).getNextDataCell(direction.UP).getRow()
  var destRange = ss.getRange(aLast+1,1);

  destRange.setValue(dt)
}
我将函数分配给按钮并运行脚本,但这是显示给我的错误:


我还不熟悉谷歌应用程序脚本,我可以知道我在脚本中哪里做错了吗?任何建议都将不胜感激

在您的情况下,我认为最后一行可能与工作表的底行相同。在这种情况下,会发生这种错误。在脚本中,当
ss.getLastRow()
ss.getMaxRows()
的值相同时,我认为发生了错误。如果我的理解是正确的,为了避免这种情况,下面的修改如何

修改脚本: 参考资料:

我根据您的情况提出了一个修改后的脚本。你能确认一下吗?如果我对你情况的猜测不正确,我为此道歉。届时,您能否提供复制问题的详细信息?通过这个,我想确认一下。嗨,塔奈克,是的,你是对的!使用修改后的脚本,它现在可以完美地工作。谢谢@谢谢你的回复。我很高兴你的问题解决了。也谢谢你。
function myFunction() {
  const dt = Utilities.formatDate(new Date(), 'Asia/Singapore', 'HH:mm:ss');
  var ss = SpreadsheetApp.getActiveSheet();
  var direction = SpreadsheetApp.Direction

  // I modified below script.
  var lastRow = ss.getLastRow();
  var destRange;
  if (lastRow == ss.getMaxRows()) {
    destRange = ss.getRange("A" + (lastRow + 1));
  } else {
    var aLast = ss.getRange("A" + (lastRow + 1)).getNextDataCell(direction.UP).getRow();
    destRange = ss.getRange(aLast + 1, 1);
  }
  destRange.setValue(dt);
}