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

如何在Google Sheets App Scripts/绘图中创建可切换文本与颜色的玩家状态按钮

实现按钮文本与颜色动态切换的方案

步骤1:修改现有函数,添加按钮样式控制逻辑

你需要通过SpreadsheetApp的绘图对象方法定位按钮,再结合D2单元格的状态切换按钮的文本和颜色。以下是修改后的完整代码:

function ActiveOnly() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var toggleRange = sheet.getRange('D2');
  var currentValue = toggleRange.getValue();
  
  // 切换D2单元格的布尔值
  toggleRange.setValue(!currentValue);
  
  // 绑定了当前函数的按钮(通过触发脚本匹配)
  var targetButton = sheet.getDrawings().find(drawing => drawing.getOnAction() === 'ActiveOnly');
  
  if (targetButton) {
    if (!currentValue) {
      // 切换为仅显示活跃状态:按钮文本改为"Show All Players",填充色设为红色
      targetButton.setCaption('Show All Players');
      targetButton.setFillColor('#FF0000');
    } else {
      // 切换为显示所有状态:按钮文本改为"Show Active Only",填充色设为绿色
      targetButton.setCaption('Show Active Only');
      targetButton.setFillColor('#00FF00');
    }
  }
}

步骤2:设置按钮初始状态

首次使用前手动配置按钮初始样式:

  • 若D2初始值为false(显示所有玩家),将按钮文本设为Show Active Only,填充色选绿色
  • 若D2初始值为true(仅显示活跃玩家),将按钮文本设为Show All Players,填充色选红色

关键注意点

  • 确保按钮的分配脚本选择ActiveOnly,否则点击不会触发函数
  • 若找不到目标按钮,可以通过console.log(sheet.getDrawings())打印所有绘图对象的信息,确认按钮的触发脚本名称
  • 颜色支持十六进制值,也可使用SpreadsheetApp.newColor().setRgb(0,255,0).build()这种RGB方式定义颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:14:55