简体   繁体   English

谷歌表格脚本 - onChange

[英]Google Sheet Script - onChange

Please help with Google onChange function Sheet Script.请帮助 Google onChange function 工作表脚本。 I only want to log onChange for one sheet "Attendance" the change on this sheet is then logged in "Sheet5" When there is a change in "Attendance" column C, then copy the value of column B into "Sheet5" and add the current date and time.我只想为一张“出勤”登录更改,然后在“出勤”列 C 发生更改时,将此表单上的更改记录在“Sheet5”中,然后将 B 列的值复制到“Sheet5”中并添加当前日期和时间。 Here is some code I tried, but do not know how to change it.这是我尝试过的一些代码,但不知道如何更改它。

function createSpreadsheetOpenTrigger() {

   ScriptApp.newTrigger('onChange')
    .forSpreadsheet('ID to go here')
   .onChange()
   .create();

    }

function onChange(e) {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet5");
  const lastRow = sheet.getLastRow();

  sheet.getRange(lastRow + 1,1,1,4).setValues([
    [e.changeType,
      e.source.getSheetName(),
      e.source.getActiveSheet().getActiveRange().getValue(),
     new Date()]
    ]);
   }

Try this:尝试这个:

function onEdit(e) {
  const sh=e.range.getSheet();
  if(sh.getName()=='Attendance' && e.range.columnStart==3 && e.range.rowStart>'Your header row') {
    e.source.getSheetByName("Sheet5").appendRow([e.range.offset(0,-1).getValue(),new Date()]);
  }
}

onedit event obj onedit 事件对象

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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