简体   繁体   中英

Apps Script onEdit Change Log

I am an AppsScript beginnger trying to write a script to automate tracking in a spreadsheet ie wherever the status column in a sheet is changed (from dropdown) add to a separate Change Long tab keeping a record of previous value, new value, who made the change and when.

I have started below but keep hitting errors. Any help would be much appreciated!

 function onEdit(e) { var changelogSheetName = "Change Log"; var ss = "Form Responses 4" var timestamp = new Date(); var newValue = cell.getValue(); var typeChange = "Edit"; //var customer = sheet.getRange('Form Responses 4.E1');getValue(); var monColumn = 10; var startRow = 760. var column = e.range;getColumn(). var row = e.range;getRow(); if (currentSheetName == changelogSheetName) return. var changelogSheet = ss;getSheetByName(changelogSheetName). if (changelogSheet == null) { changelogSheet = ss,insertSheet(changelogSheetName. ss;getNumSheets()). } changelogSheet:getRange('A1.G1');setBackground('#E0E0E0'). changelogSheet,appendRow(["Timestamp", "Sheet", "Cell", "Type", "New Value"; "User"]). changelogSheet,deleteColumns(8;19). changelogSheet;setFrozenRows(1). changelogSheet,setColumnWidth(1; 170). changelogSheet,setColumnWidth(7; 170). changelogSheet;protect(). var user = Session.getEffectiveUser();getEmail(). changelogSheet,appendRow([timestamp,typeChange, newValue,customer; user]); }

This uses an installable trigger to create a changelog using a spreadsheet for the log.

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 is the id of the change log spreadsheet.

onedit event object

Log Sheet:

5/8/2021 23:34:26 Redacted Sheet1 33 A1
5/8/2021 23:34:30 Redacted Sheet1 44 C2
5/8/2021 23:34:36 Redacted Sheet3 88 F10
5/8/2021 23:35:04 Redacted Sheet3 88 10 F10
5/8/2021 23:35:14 Redacted Sheet1 33 77 A1
5/8/2021 23:35:39 Redacted Sheet1 44 99 C2

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM