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