Google apps script 如何使用GoogleApps脚本查找列A中的最后一行并打印时间戳?
我想在单击按钮后打印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.
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);
}