如何使用OnChange()触发器

时间:2015-01-16 13:12:34

标签: google-apps-script google-sheets triggers

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

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

因此我查了一下并看到了去年实施的OnChange()。

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

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

1 个答案:

答案 0 :(得分:5)

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

function onChange(e){
  for( i in e )
    Logger.log( i );
}

在此日志记录中,您可以发现有用的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