如何实现点击Google表格审批按钮时,自动勾选另一Google表格复选框?
实现Google表格审批按钮同步勾选另一表格复选框
要实现点击审批/拒绝按钮时同步勾选另一个Google表格的复选框,你需要在现有函数中添加代码来定位目标表格并设置复选框状态。以下是修改后的完整代码:
function showMessageBox() { Browser.msgBox('Your PO has been approved!'); // 获取收件人邮箱 var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("C7"); var emailAddress = emailRange.getValue(); // 发送审批邮件 var message = 'This PO has been approved!'; var subject = 'Your PO request has been approved'; MailApp.sendEmail(emailAddress, subject, message); // 同步勾选另一表格的复选框 try { // 替换为目标表格的ID(可在表格URL中找到) const targetSpreadsheetId = "你的目标表格ID"; // 替换为目标工作表名称 const targetSheetName = "目标工作表"; // 替换为复选框所在的单元格范围 const checkboxRange = "D2"; const targetSheet = SpreadsheetApp.openById(targetSpreadsheetId).getSheetByName(targetSheetName); targetSheet.getRange(checkboxRange).setValue(true); } catch (e) { Browser.msgBox('勾选复选框失败:' + e.message); } } function showMessageBox2() { Browser.msgBox('Your PO has been rejeced! We need more info'); // 获取收件人邮箱 var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("C7"); var emailAddress = emailRange.getValue(); // 发送拒绝邮件 var message = 'This PO has been rejected, we need more information!'; var subject = 'Your PO request has been rejected'; MailApp.sendEmail(emailAddress, subject, message); // 如果拒绝时也需要勾选复选框,取消下面代码的注释并修改参数 /* try { const targetSpreadsheetId = "你的目标表格ID"; const targetSheetName = "目标工作表"; const checkboxRange = "D2"; const targetSheet = SpreadsheetApp.openById(targetSpreadsheetId).getSheetByName(targetSheetName); targetSheet.getRange(checkboxRange).setValue(true); } catch (e) { Browser.msgBox('勾选复选框失败:' + e.message); } */ }
关键说明:
定位目标表格:
- 使用
SpreadsheetApp.openById("表格ID")打开目标表格,表格ID可从URL中提取(例如https://docs.google.com/spreadsheets/d/XXX/edit中的XXX就是ID) - 也可以用
SpreadsheetApp.openByUrl("完整表格URL")直接通过URL打开
- 使用
设置复选框状态:
- Google表格的复选框勾选状态对应单元格值为
true,取消勾选为false,所以用setValue(true)即可完成勾选
- Google表格的复选框勾选状态对应单元格值为
权限处理:
- 第一次运行修改后的函数时,会弹出授权请求,需要允许脚本访问你的Google表格资源,否则无法操作另一表格
错误捕获:
- 添加
try-catch块可以在操作失败时弹出提示,方便排查问题(比如表格ID错误、工作表名称不存在等)
- 添加
内容的提问来源于stack exchange,提问作者Leycy Trejo
相关产品推荐
相关产品推荐

