微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确定特定单元格范围是否已在 Google 表格中更新?

如何解决如何确定特定单元格范围是否已在 Google 表格中更新?

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

我认为一般的想法看起来像这样,而不是实际的代码只是一个想法:

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(),"MM/dd/yyyy");
  nextCell.setValue(newDate);
}
if( r.getColumn() == 4 ) { 
  var nextCell = r.offset(0,6);
  var newDate1 = Utilities.formatDate(new Date(),"MM/dd/yyyy");
  nextCell.setValue(newDate1);
}}}
  • "Sheet1" = 工作表名称
  • r.getColumn() == 3 = C 列/第 3 列
  • r.offset(0,7) = 偏移时间戳在同一行向右 7 列,例如 H 列
  • "GMT+8" = 时区
  • "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()); } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。