【问题标题】:Insert the date/time an individual tab was last updated (google sheets)插入单个标签上次更新的日期/时间(谷歌表格)
【发布时间】:2022-01-11 20:30:34
【问题描述】:

我在 Google 表格中有一个数据仪表板,它综合了来自多个不同数据源的数据。这些数据源被放入同一个 Google 表格文件中,每个文件都位于不同的选项卡上。不同的团队成员负责更新每个单独的数据选项卡,这是通过从各种程序中提取报告并将新数据粘贴到各自的数据选项卡中来完成的。 注意:我意识到从不同程序的报告中粘贴数据的过程效率低下。不幸的是,我们使用的系统并非都相互通信,因此这是迄今为止我们发现的跨系统分析数据的最佳方式。

目标:我希望每个数据选项卡上都有一个单元格,其中列出了单个选项卡(工作表)更新的最后日期和时间。例如,如果我更新选项卡 1 上的数据,我希望日期/时间戳在选项卡 1 上更新,而不是在选项卡 2 上更新。选项卡 2 上的日期/时间戳应该仅在我将新数据添加到选项卡 2 时更新.

我已经尝试过粘贴在下面的脚本(来自the Question/Answer linked here),它确实更新了选项卡上的日期/时间:

function onEdit(e) {
  var s = e.source.getActiveSheet();
  var sName = s.getName();
  var ar = e.range;
  var row = ar.getRow();
  var arRows = ar.getNumRows()  
  if( ar.getColumn() == 3 && sName == 'Sheet1') { 
      s.getRange(row,6,arRows).setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
  }
 }

问题在于,当我更新选项卡 2 上的数据时,它更新了选项卡 1 上的日期/时间。

我应该使用什么脚本,以便仅在更新 Tab 1 上的数据时更新 Tab 1 上的日期/时间?当 Tab 2 上的数据更新时,是否会更新 Tab 2 上的日期/时间?

提前感谢您的指导!

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    更改用户编辑的每个工作表中的日期单元格 A1

    function onEdit(e) {
      var sh = e.range.getSheet();
      sh.getRange(1,1).setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
     }
    

    如果您希望排除某些工作表:

    function onEdit(e) {
      const excl = ['Sheet1','Sheet2'];
      var sh = e.range.getSheet();
      if(~excl.indexOf(sh.getName()))return;//this could allow you to exclude some sheets
      sh.getRange(1,1).setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
     }
    

    在这种情况下我选择了A1

    【讨论】:

    • - 谢谢!您能否帮助解释您发布的第一个解决方案?我不太了解仅通过查看单个选项卡上的编辑来触发日期更改是如何工作的。
    • 您说您希望在编辑工作表时将当前时间放在每个工作表的某个单元格中,这样每当编辑任何工作表时都会将时间放在 A1 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2014-06-27
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多