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

如何修改Google Apps脚本按标签十六进制颜色筛选工作表名称

实现按工作表标签颜色筛选的名称列表

你可以修改原有的SHEETNAMES函数,添加标签颜色筛选逻辑。利用Google Apps Script的getTabColor()方法获取工作表标签的十六进制颜色值,结合原有的选项逻辑,就能实现按颜色过滤的功能。

修改后的完整函数如下:

function SHEETNAMES(option = 0, filterColor = null) {
  var sheetNames = [];
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var currSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var currSheetName = currSheet.getName();

  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    var sheetName = sheet.getName();
    var sheetColor = sheet.getTabColor();

    // 颜色筛选判断:如果指定了颜色,仅匹配对应颜色的工作表
    if (filterColor !== null && sheetColor !== filterColor) {
      continue;
    }

    // 原有选项逻辑
    if (option === 0) {
      sheetNames.push([sheetName]);
    } else if (option === -1) {
      if (sheetName !== currSheetName) {
        sheetNames.push([sheetName]);
      }
    } else if (option === 1) {
      if (sheetName === currSheetName) {
        sheetNames.push([sheetName]);
      }
    } else {
      throw "Option argument must be -1, 0, or 1";
    }
  }

  return sheetNames;
}

使用示例

  • 显示所有标签为绿色(#00ff00)的工作表名称:
    =SHEETNAMES(0, "#00ff00")
    
  • 显示除当前工作表外,标签为红色(#ff0000)的工作表名称:
    =SHEETNAMES(-1, "#ff0000")
    
  • 保留原有功能,不进行颜色筛选(和原函数用法一致):
    =SHEETNAMES(0) // 所有工作表
    =SHEETNAMES(-1) // 除当前外的所有工作表
    =SHEETNAMES(1) // 当前工作表
    

说明

  • getTabColor()方法返回工作表标签的十六进制颜色字符串(如#00ff00),如果标签未设置颜色则返回null,你可以根据需求额外处理这种情况。
  • 新增的filterColor参数是可选的,不传入时函数会保持原有逻辑运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:48:20