【问题标题】:How to find out if a specific cell range has been updated in Google Sheets?如何确定 Google 表格中的特定单元格范围是否已更新?
【发布时间】:2021-02-09 20:26:30
【问题描述】:

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

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

cell_range=(b2:d2)
if (cell_range)==editted:
     date()

if (table_sort==True):
     date_change==False

如果有人知道如何做到这一点,将不胜感激。

【问题讨论】:

    标签: date sorting google-apps-script google-sheets cell


    【解决方案1】:

    为此您需要一个脚本。例如:

    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 列/第 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()); } }
    

    【讨论】:

    • 好的,所以只要看看这个,它应该可以工作。但是,我如何将这段代码编写和/或实现到特定的单元格中?
    • @MichaelPate 看看:i.stack.imgur.com/HbGu4.png
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多