我正在使用脚本将值从Column C
复制到Next Blank Column
- 但是,我想使用单独的时间戳脚本在{中添加日期MM yyyy
)正在更改同一列的{1}} [见Sample Data]
(例如,第一次我的'复制值'函数运行时,它会将Row 1
中的值复制到C2:C16
...我想自动放置一个格式为D2:D16
的格式为MM yyyy
的时间戳 - 然后,下个月,它会将D1
复制到C2:C16
,并且我希望将E2:E16
放入MM yyyy
,等等。)
下面的脚本在编辑时会在单元格上方加时间戳,但在运行其他脚本时无法为时间戳记。
E1
我尝试将其更改为function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() >= 4 && r.getColumn() <= 20) { //checks the column
var nextCell = r.offset(-1, 0);
nextCell.setValue(new Date());
}
}
}
功能,但没有成功。
任何帮助都是def。理解!
TY!
这是上面提到的onChange
函数:
Copy Values
答案 0 :(得分:1)
运行onEdit()
时未调用readSalesNum()
函数,因为onEdit()触发器仅在 用户 所做的修改时运行。来自documentation:
<强> onEdit()强>
当用户更改值时,onEdit()触发器会自动运行 电子表格中的任何单元格。
更好的选择是将时间戳放入自己的函数中,您可以在readSalesNum()
结束时调用它以及触发器。或者您可以在readSalesNum()
末尾添加时间戳。另外,为什么不使用Utilities.formatDate()
(docs)来创建预先格式化的时间戳,因为您似乎依赖于时间戳格式的单元格格式?
e.g。 (只是添加一个时间戳)
function readSalesNum(){
... your code ...
sheetTo.getRange(1,sheetTo.getLastColumn()+1).setValue(Utilities.formatDate(new Date(), "your_timezone", "MM yyyy"));
}