Google Sheets脚本求助:复选框触发清除所有批注功能失效
问题:复选框触发清除工作表所有批注功能失效
问题描述
- 需求:当第2行第6列的复选框被勾选(值为
true)时,清除当前工作表的所有批注 - 异常情况:清除批注的功能执行失败,但代码中给编辑单元格添加批注的功能完全正常
原脚本代码
function onEdit(e) { // Variables const range = e.range; var sheet = e.source.getActiveSheet(); var triggercell = sheet.getRange(2, 6).getValue(); // Set a comment on the edited cell to indicate when it was changed. range.setNote('Last modified: ' + new Date()); // Clears all notes if (triggercell) { sheet.clearNote(); } }
问题原因
核心错误是调用了错误的方法:
sheet.clearNote()是单个单元格Range对象的方法,Sheet对象并不具备这个方法,因此执行时会直接报错导致功能失效- 要清除整个工作表的所有批注,需要使用Sheet对象的
clearNotes()方法(注意复数形式)
修正后的代码
function onEdit(e) { // Variables const range = e.range; var sheet = e.source.getActiveSheet(); var triggercell = sheet.getRange(2, 6).getValue(); // Set a comment on the edited cell to indicate when it was changed. range.setNote('Last modified: ' + new Date()); // Clears all notes if (triggercell) { sheet.clearNotes(); // 修正为复数形式的clearNotes() } }
补充说明
clearNote():仅作用于单个单元格,清除该单元格的批注,仅能在Range对象上调用clearNotes():可作用于Sheet对象或Range对象,清除对应范围内的所有批注
内容的提问来源于stack exchange,提问作者GeminiOverworker
相关产品推荐
相关产品推荐

