Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 应用程序脚本OneEdit更改日志_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 应用程序脚本OneEdit更改日志

Javascript 应用程序脚本OneEdit更改日志,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我是一名AppsScript初学者,试图编写一个脚本来自动跟踪电子表格,即在工作表中的状态列发生更改时(从下拉列表中),将其添加到一个单独的“更改”长选项卡中,该选项卡记录以前的值、新值、更改人和更改时间 我已经从下面开始了,但一直在出错。任何帮助都将不胜感激 函数onEdit(e){ var changelogSheetName=“更改日志”; var ss=“表格响应4” var timestamp=新日期(); var newValue=cell.getValue(); var type

我是一名AppsScript初学者,试图编写一个脚本来自动跟踪电子表格,即在工作表中的状态列发生更改时(从下拉列表中),将其添加到一个单独的“更改”长选项卡中,该选项卡记录以前的值、新值、更改人和更改时间

我已经从下面开始了,但一直在出错。任何帮助都将不胜感激

函数onEdit(e){
var changelogSheetName=“更改日志”;
var ss=“表格响应4”
var timestamp=新日期();
var newValue=cell.getValue();
var typeChange=“编辑”;
//var customer=sheet.getRange('formresponses 4!E1').getValue();
var-monColumn=10;
var startRow=760;
var column=e.range.getColumn();
var row=e.range.getRow();
如果(currentSheetName==changelogSheetName)返回;
var changelogSheet=ss.getSheetByName(changelogSheetName);
if(changelogSheet==null){
changelogSheet=ss.insertSheet(changelogSheetName,ss.getNumSheets());
}
changelogSheet.getRange('A1:G1')。setBackground('e0');
appendRow([“时间戳”、“工作表”、“单元格”、“类型”、“新值”、“用户”]);
变更记录表。删除列(8,19);
变更记录表。设置冻结行(1);
变更记录表。设置列宽(1170);
变更记录表。设置柱宽(7170);
changelogSheet.protect();
var user=Session.getEffectiveUser().getEmail();
appendRow([timestamp,typeChange,newValue,customer,user]);}

这使用一个可安装的触发器,使用日志的电子表格创建变更日志

function onMyEdit(e) {
  const sh=e.range.getSheet();
  const excl=['excluded sheet names'];
  if(~excl.indexOf(sh.getName()))return;
  SpreadsheetApp.openById(gobj.globals.testsourceid).getSheetByName('Sheet1').appendRow([new Date(),Session.getActiveUser().getEmail(),sh.getName(),e.oldValue,e.value,e.range.getA1Notation()]);
}
gobj.globals.testsourceid是更改日志电子表格的id

记录表:

5/8/2021 23:34:26 编辑 表一 33 A1 5/8/2021 23:34:30 编辑 表一 44 C2 5/8/2021 23:34:36 编辑 表3 88 F10 5/8/2021 23:35:04 编辑 表3 88 10 F10 5/8/2021 23:35:14 编辑 表一 33 77 A1 5/8/2021 23:35:39 编辑 表一 44 99 C2
太多未定义的变量无法为您提供任何帮助