【发布时间】:2015-07-01 00:46:16
【问题描述】:
我是编程新手,所以请耐心等待。我正在编写一个脚本,除其他外,它在编辑时获取一个单元格值,然后在其他各种范围内的一系列单元格下划线。给定的单元格具有验证功能,因此用户只能从下拉菜单的一系列选项中进行选择。
据我所知,验证功能运行良好,但是当我通过选择下拉菜单选项之一来编辑指定单元格时,什么也没有发生。我需要调用onEdit(e) 函数吗?我已经阅读了 api 参考并搜索了 stackoverflow 和网络以寻求帮助,但我被困住了。
请指教;任何帮助表示赞赏。这是我的代码的相关部分:
function validateLeagueSizeInput(sheet) {
var cell = sheet.getRange('G2'),
values = [[8], [10], [12]],
range = sheet.getRange('A998:A1000').setValues(values),
rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, true).build();
cell.setDataValidation(rule);
}
function onEdit(e) {
var cell = e.value,
range = SpreadsheetApp.getActiveSheet().getRange('A2:F301');
for (var i = cell + 1; i < Math.floor(301 / cell); i += cell) {
for (var j = 1; j <= 6; j++) {
range[i][j].setBorder(null, null, true, null, null, null);
}
}
}
【问题讨论】:
-
“硬编码”变量
cell->var cell = 5;的值。然后设置一个断点并运行调试器。 Link to Google Documentation - Troubleshooting 单步执行代码。如果您不确定onEdit()函数是否正在运行,请在顶部添加Logger.log('it ran! ' + e.value);语句,编辑单元格,然后查看日志。 -
感谢您的建议,@SandyGood!我之前尝试过记录
cell变量,而onEdit(e)函数肯定没有被触发。可能是从下拉菜单中选择的选项不会触发onEdit()函数,因为@Mogsdad 已经避开了。 -
尝试安装的更改触发事件。
-
再次感谢您的意见。我决定只创建一个菜单项并在以这种方式触发时执行代码。
标签: google-apps-script google-sheets