如何找出如果一个特定的单元格范围已在谷歌工作表更新?



我正在制作一个电子表格,需要找出是否已编辑某个单元格范围,然后添加编辑的日期。我有需要编辑的单元格范围,如果我从不同的列对表进行排序,我也不希望日期发生变化。

我认为一般的想法应该是这样的,而不是实际的代码,只是一个想法:

cell_range=(b2:d2)
if (cell_range)==editted:
date()
if (table_sort==True):
date_change==False

如果有人知道怎么做,我将不胜感激。

你需要一个脚本。例如:

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { 
var r = s.getActiveCell();
if( r.getColumn() == 2 ) { 
var nextCell = r.offset(0, 8);
var newDate = Utilities.formatDate(new Date(), 
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 3 ) { 
var nextCell = r.offset(0, 7);
var newDate = Utilities.formatDate(new Date(), 
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 4 ) { 
var nextCell = r.offset(0, 6);
var newDate1 = Utilities.formatDate(new Date(), 
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate1);
}}}
  • "Sheet1"=页名
  • r.getColumn() == 3= C列/第三列
  • r.offset(0, 7)= offset timestamp在同一行右移7列(例如H列)
  • "GMT+8"= timezone
  • "MM/dd/yyyy hh:mm:ss"=日期和时间格式

替代(未测试):

function onEdit(e) { 
if ([2].indexOf(e.range.columnStart) != -1) { 
e.range.offset(0, 7).setValue(new Date()); } 
if ([3].indexOf(e.range.columnStart) != -1) { 
e.range.offset(0, 6).setValue(new Date()); }
if ([4].indexOf(e.range.columnStart) != -1) { 
e.range.offset(0, 5).setValue(new Date()); } }

相关内容

  • 没有找到相关文章