You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script转换求助:待办列表重置按钮功能修复

脚本转换求助:待办列表重置按钮无法清除已完成任务内容

背景

两年前我曾借助脚本实现了复杂销售追踪器的重置按钮功能,原方案十分实用。之后我将该脚本修改后应用到多个项目中,但当前新项目遇到了瓶颈,恳请协助转换脚本!我已钻研一个多月,尝试多种方法均未奏效,希望能了解转换中的问题所在及原因,以便后续学习。

需求说明

我为新职位创建了待办列表仪表盘,包含4个待办列表及一个汇总框。现需为**个人待办列表(范围I4:K26)**编写重置按钮脚本,要求:

  • 清除已完成任务的内容(不删除行或保留原有格式)
  • 按截止日期、名称排序

当前进展

重置按钮可按预期排序,但无法清除已完成任务的内容。

示例表格

提供了包含待办列表结构与测试数据的示例表格。

原可用脚本

//The one that worked!

function ResetCompletedOnly() {
  var sh=SpreadsheetApp.getActive().getSheetByName('SALES: RESET 2020');
  var rg=sh.getRange('B19:T104');
  var vA=rg.getValues();
  var vF=rg.getFormulas();
 for(var i=0;i<vA.length;i++) {
    if(vA[i][9]==1){//column K
      for(var j=0;j<vA[i].length;j++) {
        if(!vF[i][j]) {
          sh.getRange(i+19,j+2).setValue('');
        }
      }
    }
  }
  rg.sort({column:3,ascending:true});//column C the column number is not relative to the range.
}

我的尝试脚本

//Testing something new..

function ResetClearContents() {
 var sh = SpreadsheetApp
               .getActive()
               .getSheetByName("ResetToDo");
 var rg=sh.getRange('I4:K26');
  var vA=rg.getValues();
  var vF=rg.getFormulas();
  for(var i=0;i<vA.length;i++) {
    if(vA[i][3]==1){//column K based on range I4:K26
      for(var j=0;j<vA[i].length;j++) {
        if(!vF[i][j]) {
          sh.getRange(i+4,j+9).clearContent();
                  }
      }
    }
  }
  rg.sort([{column:11,ascending:true},{column:9,ascending:true},{column:10,ascending:true}]);//column I the column number is not relative to the range.
}

效果对比

  • 脚本运行前效果:脚本运行前效果
  • 预期效果:预期效果
  • 当前实际效果:当前实际效果

附加问题

Google Sheets更新后,数据验证下拉框在有数据时会显示固定背景色(示例表格K30:K41范围可见),如何设置为透明以显示交替行颜色?


内容的提问来源于stack exchange,提问作者Joy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:05:27