如何将输入参数添加到onEdit函数

时间:2016-11-11 06:02:53

标签: google-apps-script google-sheets

我正在尝试使用google sheet脚本编辑器创建自定义onEdit函数。我想知道是否可以添加输入参数,例如onEdit(e,row),其中row是一个整数,用于指定目标单元格。这是我的菜鸟代码:

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-TRACKING”)。我把公式放在A列并将日期写入B列。问题是我的“行”变量未定义...如果我用固定数字替换它并且不尝试添加参数它工作正常,但是我需要一个可以自动填充的参数。

单元格中的

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

谢谢,

Umpsy

2 个答案:

答案 0 :(得分:1)

简短回答

如果您想使用两个或更多参数,请为您的函数使用其他名称而不是onEdit

解释

在Google Apps脚本中,onEdit是保留的函数名称。如果您不遵循指南使用保留的功能名称,则可能会产生意外结果。

参考

答案 1 :(得分:0)

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