我onEdit()
在Google电子表格上获得了两个功能清单。但是似乎一个功能一次起作用。
第一个功能是为所有行着色的脚本,第二个功能是用于根据列编辑在2个单元格上添加日期的日期功能。
这是脚本。
function colorAll()
{
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 4;
var endRow = sheet.getLastRow();
for (var r = startRow; r <= endRow; r++) {
colorRow(r);
}
}
SpreadsheetApp.flush();
function colorRow(r)
{
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(r, 1, 1, 32);
var data = dataRange.getValues();
var row = data[0];
SpreadsheetApp.flush();
if(row[14] === ""){
dataRange.setBackgroundRGB(255, 255, 255);
dataRange.setFontColor("#000000");
}
else if(row[14] === "BEING USED") {
dataRange.setBackgroundRGB(150, 185, 255);
dataRange.setFontColor("#004BE1");
}
}
function onEdit(event)
{
var r = event.source.getActiveRange().getRowIndex();
if (r >= 2) {
colorRow(r);
}
}
function onOpen(){
colorAll();
和第二个功能。
function onEdit(e) {
var aCell = e.source.getActiveCell(), col = aCell.getColumn();
if(col == 19 || col == 21) {
var adjacentCell = aCell.offset(0, 1);
var newDate = Utilities.formatDate(new Date(),
"GMT+1", "dd/MM/yyyy");
adjacentCell.setValue(newDate);
}
}
日期功能正常工作,但该colorRow
功能无效,如果我删除了日期脚本,colorRow
则将正常工作。
谁能指出我正确的方向?好像我缺少什么
谢谢
巴里·史密斯(Barry Smith)关于“两个具有相同名称的函数”的评论是正确的。在这种情况下,只有第二个会执行。
您只能有一个名为的电子表格包含的函数onEdit()
。如果要将其他功能用作onEdit
触发器,则需要将其设置为可安装的触发器。
您可以使用对话框中的Resources -> Current Project's Triggers
来安装第二个触发器。
另外,您可能只有一个onEdit()
简单的触发器,但是让它调用了“ sub-trigger”函数,将事件对象传递e
给了每个函数。
背景:触发器指南。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句