我正在创建一个单元格来标记此电子表格何时“上次更改”。
我的代码如下:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
var r = s.getActiveCell();
if( r.getColumn() == 2 ) { //checks the column
var row = r.getRow();
if( row == 3 || row == 4) {
var time = new Date();
time = Utilities.formatDate(time, "GMT-04:00", "MM/DD/yy, hh:mm:ss");
SpreadsheetApp.getActiveSheet().getRange('B24').setValue(time);
};
};
};
然而,当它更新它时,它会产生“06/167/15 03:35:50”。这是有道理的,因为我上次更新它时,它是2015年6月16日下午3:35:50。为什么日期是三位数,这是什么意思?
另外,我有一个单元格,它是所有数字的“摘要”,它汇总了电子表格中的所有数字。我正在使用这种方式来确定工作表上是否有任何数字被更改,因为如果更改了任何数字,这个“摘要”单元格也将被更改。但是,如果我更改任何其他单元格,“摘要”单元格会更改(由于公式),但我的脚本不会更新时间。它似乎只有在我积极改变那个细胞时才这样做,即。改变公式。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
用户小写“d”。目前:
"MM/DD/yy
更改为:
time = Utilities.formatDate(time, "GMT-04:00", "MM/dd/yy, hh:mm:ss");
Capital“D”返回当年已经过的天数。
对于您的其他问题,请尝试使用可安装的更改触发器: