0

我有一个电子表格,以及电子表格的主副本。 每次用户将数据输入到单元格中时,它都会接收新数据并将其放入主副本。GAS - OnChange()

然而,最近我注意到一个用户创建了一个新的列,并没有被OnEdit()捕获。

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

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

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

回答

4

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

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 
+0

谢谢。这是非常丰富的。我不知道我可以通过这种方式找到属性/方法。 – chopz