Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当前时间脚本在Google文档中不工作_Javascript_Google Apps Script - Fatal编程技术网

Javascript 当前时间脚本在Google文档中不工作

Javascript 当前时间脚本在Google文档中不工作,javascript,google-apps-script,Javascript,Google Apps Script,谷歌文档在前面的两列中进行编辑时,应该按照当前时间进行更新 因此,如果编辑了B列或C列,则D列将随当前时间更新 function updateDate() { var s = SpreadsheetApp.getActive().getSheetByName("Daily"); var active_sheet = SpreadsheetApp.getActive().getActiveSheet().getName(); var active_col = s.getActive

谷歌文档在前面的两列中进行编辑时,应该按照当前时间进行更新

因此,如果编辑了B列或C列,则D列将随当前时间更新

function updateDate() {
  var s = SpreadsheetApp.getActive().getSheetByName("Daily");
  var active_sheet = 
SpreadsheetApp.getActive().getActiveSheet().getName();

  var active_col = s.getActiveCell().getColumn();
  var active_row = s.getActiveCell().getRow();

  var target_rows = [1, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 
20];
  var target_cols = [2, 3]
  var row_in_range = target_rows.indexOf(active_row) == -1 ? false : 
true; Logger.log(row_in_range);
  var col_in_range = target_cols.indexOf(active_col) == -1 ? false : 
true; Logger.log(col_in_range);

  if (row_in_range && col_in_range) {
    s.getRange(active_row, 4).setValue(new Date);
    s.getRange(active_row, 5).setValue(new Date);
  }
}
没有从Stackdriver日志中获取错误,但该错误不起作用。

目标: 当编辑B列或C列时,在相应行中写入时间戳的函数


解决方案: 这就是你真正需要的。这是一个小脚本,每当编辑工作表时,它将使用一个简单的
onEdit
触发器自动运行。它所做的只是检查使用事件对象编辑的列,然后在列D中写入时间戳

注意:您将无法手动运行此代码,它在编辑工作表时自动运行。

function onEdit(e) {
  var sh = e.source.getActiveSheet();
  var col = e.range.getColumn();
  if ((col === 2 || col === 3) === true) {
    var row = e.range.getRow();
    sh.getRange(row, 4).setValue(new Date());
  }
}

参考资料:

只是一种预感,但由于设置后您没有使用
active\u sheet
,可能需要
var active\u sheet=SpreadsheetApp.getActive().getActiveSheet()
var active\u col=active\u sheet.getActiveCell().getColumn()等等?另外,什么时候调用该函数?您是否将其设置为事件处理程序?(JavaScript和Java也是两种非常不同的语言)为什么要用Java标记它?难道你不知道你正在编程的语言的名称吗?OneEdit脚本的函数起作用了!非常感谢。嗨,JoeleNeLAMA,如果这个答案解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。