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

如何实现点击单元格时切换其填充颜色的功能

可行实现方案

以下方案均满足单元格永久保留数值1、点击切换蓝/白填充色的需求,可按需选择:

无代码折中方案(无需启用宏/脚本)

  • 不要将复选框直接放置在存值为1的目标单元格中,将复选框放在相邻列(如目标单元格为A1,复选框放在B1)
  • 选中A1单元格,设置条件格式,规则选择「使用公式确定要设置格式的单元格」,输入公式=B1=TRUE,设置符合条件时填充色为蓝色,默认填充色保留白色
  • 完成后将B列列宽调整为0或直接隐藏,点击B列对应位置即可切换A1的填充色,A1内的数值1不会发生任何变动

VBA方案(适用于Excel,点击目标单元格直接触发)

  • 打开对应工作表,按下Alt + F11调出VBA编辑器
  • 在左侧项目面板双击当前工作表名称,粘贴如下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' 仅对值为1的单元格生效
    If Target.Value = 1 Then
        ' 切换填充色
        If Target.Interior.Color = RGB(255,255,255) Then
            Target.Interior.Color = RGB(0,0,255)
        Else
            Target.Interior.Color = RGB(255,255,255)
        End If
        ' 自动偏移选中避免重复触发
        Target.Offset(0,1).Select
    End If
End Sub
  • 将文件保存为xlsm(启用宏的工作簿)格式即可生效

Apps Script方案(适用于谷歌表格)

  • 打开目标表格,点击顶部菜单「扩展程序」-「Apps Script」
  • 清空默认生成的代码,粘贴如下内容:
function onSelectionChange(e) {
  const cell = e.range;
  if (cell.getValue() === 1) {
    const currentBg = cell.getBackground();
    cell.setBackground(currentBg === "#ffffff" ? "#0000ff" : "#ffffff");
    // 偏移选中避免重复触发
    cell.getSheet().getRange(cell.getRow(), cell.getColumn() + 1).activate();
  }
}
  • 保存项目后刷新原表格即可生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:08