【发布时间】:2021-04-26 13:41:00
【问题描述】:
只是需要一些快速的监督,为什么当我从 onEdit 更改为 onChange 时它破坏了脚本,我尝试了大约 2 天来找出问题,仍然不知道我做错了什么,所以请耐心等待,我'我确信在公共论坛上有很多令人头疼的问题,我提前为成为其中一员而道歉;我知道 Simple 和 Installable 触发器是不同的,我只是不知道如何转换为新的“理想”格式
它应该在工作表“RAW”中寻找变化,然后在工作表“Raw”和“Examples”上创建一行,并应用一些功能
当在示例中找到编辑时,它还会创建一个新行,我也在尝试找出 onChange 范围表示法
这是工作表的链接,请检查脚本,看看我做错了什么; https://docs.google.com/spreadsheets/d/1GKrS-5e6ArW8g8CXgFE_Tzow6PjDtYoEjzLCBg6cNrg/edit?usp=sharing
function createSpreadsheetOpenTrigger(e) {
if (!e) {
throw new Error('Script now running');
}
if (e.range.getA1Notation() !== 'A2') {
return;
}
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('myFunction')
.forSpreadsheet(ss)
.onOpen()
.create();
}
sh.insertRowAfter(1);
sh.setRowHeight(2, 21);
var freeze = sh.getRange("A2:C2");
freeze.copyTo(freeze, {
contentsOnly: false
});
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Examples");
sh.insertRowAfter(1);
sh.setRowHeight(2, 21);
sh.getRange("A2").setFormula('=RAW!A3');
以前的样子;
function onEdit(e) {
if (!e) {
throw new Error('Script now running');
}
if (e.range.getA1Notation() !== 'A2') {
return;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("RAW");
sh.insertRowAfter(1);
sh.setRowHeight(2,21);
var freeze = sh.getRange("A2:C2");
freeze.copyTo(freeze,{contentsOnly:false});
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Examples");
sh.insertRowAfter(1);
sh.setRowHeight(2,21);
sh.getRange("A2").setFormula('=RAW!A2');
var freeze = sh.getRange("A2:C2");
freeze.copyTo(freeze,{contentsOnly:false});
}
【问题讨论】:
-
range不适用于onChange事件对象。
标签: javascript function google-apps-script google-sheets onchange