我对脚本非常陌生,所以我只是想让这个脚本适用于我的工作表。
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() == 5 ) { //checks the column
var nextCell = r.offset(0, 1);
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date());
}
}
}
目前,如果将数据插入E,它似乎将在F列中输入时间戳。 我想要进入A的时间戳;而不是nextCell,与A列相对应的是什么?
感谢并抱歉新手问题!
更新
谢谢!这很有效,也有助于我的理解:)
如果我希望将其应用于多张,而不是全部。
我尝试添加额外的行,但它似乎没有用......我哪里出错了?
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sanshiro" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 5 ) { //checks the column
var nextCell = r.offset(0, -4);
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date());
}
if( s.getName() == "Josh" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 5 ) { //checks the column
var nextCell = r.offset(0, -4);
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date());
}
if( s.getName() == "Suil" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 5 ) { //checks the column
var nextCell = r.offset(0, -4);
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date());
}
}
}
答案 0 :(得分:1)
您的代码使用offset方法来获取要更新的单元格:
offset(rowOffset, columnOffset)
返回一个新范围,该范围偏离此范围的给定数字 行和列(可以是负数)。新的范围将是 与原始范围大小相同。
因此,如果你想在左边(列A)写下4列而不是向右写(列F),只需要替换这一行:
var nextCell = r.offset(0, 1);
使用:
var nextCell = r.offset(0, -4);
答案 1 :(得分:0)
function onEdit(e) {
var sheetName = 'Sheet1'; //name of the sheet the script should work on
var colToWatch = 5 // watches for edits made in col E
if (e.range.columnStart !== colToWatch || e.source.getActiveSheet()
.getName() !== sheetName) return;
e.range.offset(0, -4) //offset the currently edited cell by 0 rows, -4 columns
.setValue(e.value ? new Date() : null);
}
看看这对你有用吗?