【发布时间】:2019-04-09 20:15:04
【问题描述】:
我正在尝试运行一个脚本,该脚本在具有多张工作表的电子表格的 E 列中输入或更改数据时自动填充 F 列中的日期。
我目前有一个根据我描述的内容为我编写的脚本,但我收到了错误代码。我回到我最初的问题并解释说,这个脚本需要在具有多个工作表的电子表格中的一个工作表上运行。他给了我一些额外的信息,但这是他的最后一个答案“是的,你需要用“getsheetbyname”之类的东西替换event.source.getActiveSheet()。我已经尝试了我有限知识范围内的一切来处理他给我的东西,但我是无论我尝试什么,仍然收到错误代码。
这是给我错误的区域。
var sheet = event.source.getsheetbyname();
这是我收到的错误代码
TypeError:无法从未定义中读取属性“源”。 (第 2 行,文件“代码”)
我知道需要有我希望脚本在其上运行的工作表的名称,但我不知道如何对其进行编码。片名是“少年权重”
预期结果应该是当我在 E 列中添加或更改数据时,它应该将当前日期自动填充到相邻列中的相邻单元格中。
当我保存脚本然后运行脚本以确保它正常工作时,当然,它给了我上面描述的错误代码。然后,当我在保存脚本而不是自动填充日期后返回该工作表时,现在当我连续突出显示一串单元格时,它将所有以下单元格更改为与我开始突出显示的第一个单元格中的相同信息.很奇怪!
脚本+错误码:
代码:
function onEdit(event) {
var sheet = event.source.getActiveSheet();
// note: actRng = the cell being updated
var actRng = event.source.getActiveRange();
var index = actRng.getRowIndex();
var cindex = actRng.getColumnIndex();
if (cindex == 5) { // 1 == Column A, 2 == Column B, 3 == Column C, etc.
var dateCol = sheet.getLastColumn();
var lastCell = sheet.getRange(index,dateCol);
var date = Utilities.formatDate(new Date(), "EST", "MMM-dd-yyyy");
lastCell.setValue("'" + date);
}
}
【问题讨论】:
-
如果不提供事件对象,您将无法从脚本编辑器运行此函数。
标签: google-apps-script google-sheets triggers google-apps-script-editor