我有一个功能,用于检测一个电子表格中的更改,如果在sheet1中进行更改,则将它们复制到同一个确切单元格位置的另一个电子表格中。我首先尝试使用sheetAPI提供的已安装的onEdit(e)函数来执行此操作,但仍然遇到错误,我无权从内置函数打开新的电子表格。我尝试设置自己的触发器,但即使我为该功能分配了一个OnEdit触发器,它也不会激活。
function ChangeDetect(e){
var range = e.range
var esheet = SpreadsheetApp.getActiveSheet()
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheets()[1];
// literally, if the edit was made in the first sheet of the spreadsheet, do the following:
if (esheet.getIndex() == ss.getSheets()[0].getIndex()){
var numrows = range.getNumRows();
var numcols = range.getNumColumns();
for (var i = 1; i <= numrows; i++) {
for (var j = 1; j <= numcols; j++) {
var currentValue = range.getCell(i,j).getValue();
var cellRow = range.getCell(i,j).getRow();
var cellCol = range.getCell(i,j).getColumn();
var ss3 = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1K2ifzjPTATH77tV4xInh0Ga2SuPsLdgNRSbekjDx-w8/edit#gid=0')
var sheet3 = ss3.getSheets()[0];
sheet3.getRange(cellRow,cellCol).setValue(currentValue)
}
}
}
}
答案 0 :(得分:0)
我想您可能会遇到limitation/restrictions of installable triggers:
<强>限制强>
因为简单的触发器会自动触发,而不会要求用户授权,所以它们会受到一些限制: