Arrays 添加新值时使用onEdit(e)更新单元格
我正在处理的一段代码由两个函数组成——generateID和onEdite。 generateID-使用模式生成一个数字,它工作正常。 onEdite是我有争议的人 在电子表格的A列中,用户从下拉列表中选择一个值。最初,A列为空,范围从第2行到getLastRow,第1行为标题。 一旦选择了该值,我需要将generateID的结果插入到同一行的下一列B中。 若从下拉列表中选择更改列a中的值,则需要generateID更新其值 以下是我迄今为止所做的尝试:Arrays 添加新值时使用onEdit(e)更新单元格,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,我正在处理的一段代码由两个函数组成——generateID和onEdite。 generateID-使用模式生成一个数字,它工作正常。 onEdite是我有争议的人 在电子表格的A列中,用户从下拉列表中选择一个值。最初,A列为空,范围从第2行到getLastRow,第1行为标题。 一旦选择了该值,我需要将generateID的结果插入到同一行的下一列B中。 若从下拉列表中选择更改列a中的值,则需要generateID更新其值 以下是我迄今为止所做的尝试: function onEdit(e) {
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getSheetByName("TEMP");
var range = activeSheet.getRange(2, 1, activeSheet.getLastRow(), 1).getValues();
for (var i =0; i < range.length; i ++) {
if (e.range [i][0] !== "") {
activeSheet.getRange(i + 2, 2, 1, 1).setValue(generateID());
};
};
};
onEdit似乎是观察范围变化的正确选择。对于e,代码似乎根本不起作用。以onEdit的方式尝试,但不正确。
请在这方面提供帮助。
谢谢。e.range返回范围对象,而不是数组。请尝试以下操作,而不是使用您的代码:
e.value !=='' ? e.range.offset(0,1).setValue(generateID()) : null
您的问题可能在e行范围[i][0]!==范围不是数组。试试e.range.getValues[i][0]