【问题标题】:How to use OnChange() trigger如何使用 OnChange() 触发器
【发布时间】:2015-01-16 13:12:34
【问题描述】:
我有一个电子表格,以及该电子表格的主副本。
每次用户在单元格中输入数据时,它都会获取新数据并放入主副本。
然而,最近,我注意到一个用户创建了一个新列,该列未被 OnEdit() 捕获。
于是我查了一下,看到了去年实现的 OnChange()。
但是,我不知道如何使用该触发器。
如何检索新的列或行,或用户更改的合并单元格,并将其复制到我的主副本中?我找不到这方面的文档。
【问题讨论】:
标签:
google-apps-script
google-sheets
triggers
【解决方案1】:
要获取对象中的所有方法,您可以使用以下内容:
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