sorting - 将 Google 表格链接到 Google 表单自动按日期排序
问题描述
我使用谷歌表格让人们请求休假。一个名为 Form Approvals 的插件用于向某些可以批准或拒绝请求的人发送电子邮件。在列出响应的 Google 表格中,新条目一直在底部。
有没有办法让 Google 表单中的新条目按 Google 表格中的休息日自动排序?
我找到了这个脚本,但它不起作用:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 2;
var tableRange = sheet.getDataRange();
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy } );
}
}
另外,有没有办法指定脚本在哪个工作表选项卡上运行?
解决方案
尝试这个:
function onEdit(e){
var sh=e.range.getSheet();
if(sh.getName()!="Your desired sheet name")return;
if(e.range.columnStart==2){
sh.getDataRange().sort({ column:2});
}
}
许多新程序员尝试从脚本编辑器运行这些 onEdit(e) 函数。不幸的是,这不起作用,因为 e 参数期望由事件触发器填充。如果没有事件对象,您通常会收到一个错误,例如无法从未定义中读取属性范围,因为 e 尚未被事件触发器填充。
我通过确保我正在编辑正确的工作表和正确的范围来测试它们,并且我使用 e.source.toast() 函数为我提供类似于 console.log() 的反馈。
如果您想了解有关事件对象的更多信息,请尝试添加 Logger.log(JSON.stringify(e)); 到函数声明后的第一行。然后通过以适当的方式编辑适当的工作表来运行它并查看日志以查看结果。
推荐阅读
- javascript - 如何使用 three.js 渲染具有不透明度分布的管?
- python - 测试包装 api 路由的装饰器
- python - 如何在 Python 中使用 Google 的 Text-to-Speech API
- python - Python套接字 - 从服务器接收不起作用
- codemirror - 如何在codemirror中添加class和id
- asp.net-web-api - 如何在 web api 中注册模型绑定器?
- html - 1. css 中的链接不起作用 2. 如何垂直居中导航栏并在每个导航栏上添加填充
- java - MySql 正在记录我的更新查询,但实际上并没有执行更新
- javascript - 调用嵌套函数 onClick 事件不识别嵌套函数
- f# - F#:获取源文件以自动评估