2016-11-11 57 views
0

我正在尝试使用Google工作表脚本编辑器创建自定义onEdit函数。我想知道是否可以添加一个输入参数,如onEdit(e,row),其中row是一个整数,用于指定目标单元格。这里是我的小白代码:如何将输入参数添加到onEdit函数

function onEdit(e,row) { 

// writes the current date to the cell in column B on the same row when a cell in a specific column is edited 

var sheetNameToWatch = "M2"; 
var columnNumberToWatch = /* column */ 7; // column A = 1, B = 2, etc. 

var ss = SpreadsheetApp.getActiveSpreadsheet(); // not used atm 
var sheet = SpreadsheetApp.getActiveSheet(); // sheet on which changes are tracked 
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GRID-TRACKING") // sheet that contains formula cells 
var range = sheet.getActiveCell(); // active cell is cell being edited 

if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch) { 
var targetCell = sheet2.getRange(row, 2); // I want the input parameter to control the "row" so I can autofill 
targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd")); // writes current date to cell 
} 
} 

我使用这个写任何编辑对表“M2” G列的最后日期与公式表(“GRID跟踪”)。我把公式放在列A中,并将日期写入列B.问题是我的“行”变量是未定义的...如果我用一个固定的数字替换它,并且不尝试添加参数,它的工作正常,但我需要一个可以自动填充的参数。

在细胞

我的公式是= onedit(单元格,行)

感谢,

Umpsy

+1

你不能喂其他任何参数为onEdit。你只是想让它发生在同一排?为什么不利用[事件对象](https://developers.google.com/apps-script/guides/triggers/events)通过? –

+1

阅读onEdit文档你知道它的用途。 –

回答

0

你不能传递任何其他变量onEdit。但是,如果您将此用作公式,我不明白为什么您甚至需要触发器onEdit,它可以成功地成为thisFunc()。正如我在代码中看到的,您甚至不使用事件对象,所以肯定没有理由拥有onEdit。您还必须考虑到,无论您何时编辑电子表格中的任何单元格,它都会启动。

1

简短的回答

如果要使用两个或多个参数用另一个名称,而不是onEdit您的功能。

说明

在谷歌Apps脚本,onEdit是一个保留的函数名。如果您不遵循指导使用保留的函数名称,则可能会得到意想不到的结果。

参考