我在以下脚本上获得了很多帮助:THREAD
现在的问题是,脚本可以在每个单元格上完美运行。问题是,当我使用“删除”键清除单元格时,我希望它不起作用。现在,如果我按“删除”键,它将在“右单元格”中填充日期。
function onEdit(e)
{
// condition to make sure you are not entering value in the date sheet
if(e.source.getActiveSheet().getName() != "Dates" && e.range.rowStart > 2)
{
//grab the sheet where you wan't the date to be inserted.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dates");
//grab the cell where the date will be inserted
var cell = e.source.getActiveSheet().getRange(e.range.getRow(), e.range.getColumn() + 1);
//create the actual date
var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
//set the value of the cell with the date
cell.setValue(now);
}
}
用户JSmith在这里给了我很多帮助。兄弟,再次寻求您的帮助。 (我欠您很多时间,因为我从未与GAS合作过)
答案 0 :(得分:0)
尝试使用此代码,该代码适用于单列和一行/多行的范围。
function onEdit(e)
{
var values = e.range.getValues();
var now = Utilities.formatDate(new Date(), "GMT+2", "MM-dd-yyyy");
var newRange = e.range.getSheet().getRange(e.range.getRow(), e.range.getColumn() + 1,e.range.getLastRow() - e.range.getRow() + 1, 1);
values.forEach(function (el)
{
if (el[0])
el[0] = now;
});
newRange.setValues(values);
}