【问题标题】:Timestamp script, not working (pasting/dragging formula, cell value)时间戳脚本,不起作用(粘贴/拖动公式,单元格值)
【发布时间】:2021-09-24 07:05:52
【问题描述】:


问题说明

当前版本的脚本正在运行,但只有在手动输入数据时才会显示结果。我正在使用 onEdit 触发器。

  1. 有A列,显示从B列输入信息的时间和日期,B列的产品代码引用C列。如果我尝试将公式拖过B列以显示数据,那么不显示 A 列中的日期和时间。如何解决这个问题?
  2. 第一个表在工作表 1 上,结果数据需要在工作表 2 上复制。在这种情况下,我引用工作表 A 中所需的单元格,但如果显示 B 列和 C 列的数据则不显示 A 列(带时间戳)的输入日期。
  3. 如果下拉 B 列中的数据,则脚本不会对这些更改做出反应,因此,输入日期不会显示在 A 列中。

代码

var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();
if ( idCol == 2 && sheet.getName() =='FB data' ) {
var Value = e.range.offset(0, -1).getValues();  
if ( Value == "" ) {

var vartoday = getDate();
var varnow = getTime();


 var time = new Date();
    time = Utilities.formatDate(time, "GMT+03:00", "dd/MM/yyyy HH:mm:ss");
   var r = e.range;
 
sheet.getRange(idRow, 1).setValue(varnow);
}
}
}

function getTime() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, 'GMT+03:00', "dd/MM/yyyy HH:mm:ss");
}```

【问题讨论】:

  • 不幸的是,Apps 脚本触发器的预期行为仅在手动编辑时触发 - 请参阅 Restrictions

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


【解决方案1】:

// 在工作表中拖动是手动编辑

function onEdit(e) {
  if ( e.range.getColumn() == 2 && e.source.getActiveSheet().getName() == 'FB data' ) {

    // getValues() returns a 2D Array [[]]
    var Value = e.range.offset(0, -1).getValues()

    // loop through each row replacing empty cell with result of calling getTime function
    for(let i = 0, len = Value.length; i < len; i++) {
      if (Value[i][0] == "") {
        Value[i][0] = getTime()
      }
    }
    // write the mutated values back to the sheet
    e.range.offset(0, -1).setValues(Value)
  }
}

function getTime() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, 'GMT+03:00', "dd/MM/yyyy HH:mm:ss");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多