【问题标题】:How can I set up a datestamp in Google Sheets for specific rows?如何在 Google 表格中为特定行设置时间戳?
【发布时间】:2014-08-14 01:15:38
【问题描述】:

我正在尝试设置一个 Google 表格电子表格,当编辑特定单元格时,右侧单元格中的日期会更新以指示已进行更改。在 Google 表格论坛上,有人将我指向这里以获得最佳指导。

脚本本身运行良好。但是,我想将其限制为特定的单元格(或行——两者都可以),这样它就不会在我的标题行中添加日期戳。我需要在脚本中添加什么才能将其应用于特定的单元格/行?

这是我现在的脚本:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() != 3 ) { //checks the column
    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-07:00", "MM/dd/yy");
    SpreadsheetApp.getActiveSheet().getRange('C' + row.toString()).setValue(time);
  };
 }; 

假设,假设我有一张有 30 行活动的工作表。我希望日期戳出现在第 9 到 13 行; 15 至 18 岁;和 20 到 26。其他行都是标题,我希望能够更改那里的文本,而不需要 Sheets 用日期戳填充相邻的单元格。假设有可能,我将如何编辑脚本以在 Google 表格中实现这一点?谢谢!!

【问题讨论】:

    标签: google-apps-script google-sheets timestamp


    【解决方案1】:

    只需在列条件中添加更多条件。

    例如对于前 2 行:

      if( r.getColumn() != 3 && ((row>8 && row<14)||(row>14 && row<19))){ // continue with other AND and OR for all your conditions
    

    顺便说一句,我还建议用这种专用方法替换硬编码时区:

    var tz = Session.getScriptTimeZone();
    var time = Utilities.formatDate(new Date(),tz, "MM/dd/yy");
    

    它会自动匹配您工作表的时区,即使您所在的国家/地区有夏令时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-20
      • 2021-08-11
      • 2020-04-14
      • 1970-01-01
      • 2017-10-19
      • 2020-07-14
      • 1970-01-01
      • 2016-02-15
      相关资源
      最近更新 更多