我正在尝试使用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
答案 0 :(得分:1)
如果您想使用两个或更多参数,请为您的函数使用其他名称而不是onEdit
。
在Google Apps脚本中,onEdit
是保留的函数名称。如果您不遵循指南使用保留的功能名称,则可能会产生意外结果。
答案 1 :(得分:0)
您无法将任何其他变量传递给onEdit
。但是,如果您将其用作公式,我真的不明白为什么您甚至需要onEdit
触发器,它可以成功thisFunc()
。正如我在代码中看到的那样,您甚至不使用事件对象,因此绝对没有理由拥有onEdit。您还必须考虑在编辑电子表格中的任何单元格时都会启动它。