如何使用OnChange()触发器

cho*_*opz 0 triggers google-sheets google-apps-script

我有一个电子表格,以及该电子表格的主副本。每次用户将数据输入到单元中时,它都会获取新数据并放入主副本中。

但是最近,我注意到一个用户创建了一个新列,但该列未被OnEdit()捕获。

因此,我进行了查找,并看到了去年实现的OnChange()。

但是,我不知道如何使用该触发器。

如何检索新列或行或用户更改的合并单元格,并将其复制到我的主副本中?我找不到关于此的文档。

Kri*_*ggs 5

要获取对象中的所有方法,可以使用以下命令:

function onChange(e){
  for( i in e )
    Logger.log( i );
}
Run Code Online (Sandbox Code Playgroud)

在此日志记录中,您可以发现有用的source属性,该属性具有以下属性/方法(可使用找到for( i in e.source)):

getOwner
getKey
removeNamedRange
revealColumn
getSheetPermissions
deleteSheet
getViewers
unhideRow
addEditors
getSpreadsheetTimeZone
insertRowBefore
getSheetId
setFrozenRows
setSpreadsheetLocale
getSpreadsheetLocale
getId
copy
hideColumn
getActiveRange
addMenu
toast
setColumnWidth
getLastColumn
getAs
insertColumnsAfter
setSheetPermissions
setActiveSheet
getBlob
removeMenu
sort
getRange
getRangeByName
getColumnWidth
hideRow
inputBox
removeViewer
findSheetByName
insertImage
autoResizeColumn
setNamedRange
getSheetByName
setActiveCell
insertSheet
isWritable
setSpreadsheetTimeZone
getNumSheets
setFrozenColumns
getSheetProtection
duplicateActiveSheet
deleteRow
isAnonymousWrite
isAnonymousView
findSheet
insertRowAfter
addEditor
getName
unhideColumn
setRowHeight
addViewers
rename
show
setActiveRange
getFrozenRows
setAnonymousAccess
addCollaborator
setActiveSelection
getSheetValues
deleteActiveSheet
removeCollaborator
getDataRange
addCollaborators
deleteRows
deleteColumn
toString
isReadable
removeEditor
setName
insertColumnsBefore
moveActiveSheet
getSheets
getChanges
appendRow
getSheetName
getActiveSelection
insertRowsBefore
insertColumnAfter
getActiveCell
getActiveSheet
getEditors
find
getRowHeight
getFormUrl
getFrozenColumns
updateMenu
msgBox
insertColumnBefore
getUrl
getLastRow
insertRowsAfter
renameActiveSheet
setSheetProtection
deleteColumns
addViewer
getCollaborators
revealRow
Run Code Online (Sandbox Code Playgroud)