Google Apps 脚本仅在手动触发时有效,其他任何触发器均无效
Google Apps Script only works when manually triggered, not by any other trigger
我有点难以理解这件事:
如果 X 行 Y 列中的单元格颜色为红色 (f4c7c3),我的代码旨在删除 rox X。
例如:
由于我在这里看到的一些问题帮助我改进了代码,因此该代码运行良好,但只有在我单击 运行 时它才会运行。如果我正在使用任何触发器(我想每天在午夜和凌晨 1 点之间使用时间驱动的触发器,但我已经尝试了所有触发器),它会显示它已完成,但电子表格没有任何反应。
这是我的代码,非常感谢你对这个问题的帮助:
function DeleteRow(column,color) { //Delete row if the color in the Date column is F4C7C3
var column = (typeof(column)!='undefined')?column:4;
var color = (typeof(color)!='undefined')?color:'#f4c7c3';
var ss = SpreadsheetApp.openById("1Ichlawob5EHzSK4ljRSJfViugFWugTzHOMId3q5LL6w");
var sht = ss.setActiveSheet(ss.getSheets()[0]);
var rng = ss.getDataRange();
var rngA = rng.getBackgrounds()
for(var i=rngA.length-1;i>-1;i--)
{
if(rngA[i][column-1]==color)
{
sht.deleteRow(i+1);
}
}
}
顺便说一句,即使执行指示成功,我还是得到了一个显示错误的摘要-
尝试替换行:
var column = (typeof(column)!='undefined')?column:4;
收件人:
var column = (typeof(column)=='number')?column:4;
或者只是:
var column = 4;
说明
每当您通过触发器触发一个函数时,该函数都会得到一个 'event object' 作为第一个也是唯一一个参数。您实际上是在调用 DeleteRow(e)
而不是 DeleteRow()
。其中 e
是事件对象。它不是 undefined
也不是数字。
我有点难以理解这件事: 如果 X 行 Y 列中的单元格颜色为红色 (f4c7c3),我的代码旨在删除 rox X。 例如:
由于我在这里看到的一些问题帮助我改进了代码,因此该代码运行良好,但只有在我单击 运行 时它才会运行。如果我正在使用任何触发器(我想每天在午夜和凌晨 1 点之间使用时间驱动的触发器,但我已经尝试了所有触发器),它会显示它已完成,但电子表格没有任何反应。
这是我的代码,非常感谢你对这个问题的帮助:
function DeleteRow(column,color) { //Delete row if the color in the Date column is F4C7C3
var column = (typeof(column)!='undefined')?column:4;
var color = (typeof(color)!='undefined')?color:'#f4c7c3';
var ss = SpreadsheetApp.openById("1Ichlawob5EHzSK4ljRSJfViugFWugTzHOMId3q5LL6w");
var sht = ss.setActiveSheet(ss.getSheets()[0]);
var rng = ss.getDataRange();
var rngA = rng.getBackgrounds()
for(var i=rngA.length-1;i>-1;i--)
{
if(rngA[i][column-1]==color)
{
sht.deleteRow(i+1);
}
}
}
顺便说一句,即使执行指示成功,我还是得到了一个显示错误的摘要-
尝试替换行:
var column = (typeof(column)!='undefined')?column:4;
收件人:
var column = (typeof(column)=='number')?column:4;
或者只是:
var column = 4;
说明
每当您通过触发器触发一个函数时,该函数都会得到一个 'event object' 作为第一个也是唯一一个参数。您实际上是在调用 DeleteRow(e)
而不是 DeleteRow()
。其中 e
是事件对象。它不是 undefined
也不是数字。