【问题标题】:How to count cell colours allocated through a macro in excel 2007?如何计算通过 excel 2007 中的宏分配的单元格颜色?
【发布时间】:2013-04-19 03:47:21
【问题描述】:

我在 excel 2007 中创建了一个电子表格,供教师根据各种参数监控进度和成绩。

为了创建参数规则,我使用了一组运行良好的宏,包含学生分数的单元格会根据他们的进度是否达到、低于或高于预期水平(黄色、红色和绿色)而改变颜色- 原来我知道!!)。

我现在正在尝试创建一个“插入式”电子表格,允许员工从主表(包含年级组中的所有学生)复制和粘贴,并专门针对他们自己的班级获得反馈。一切都很顺利,直到我想到了我认为最简单的部分——用 excel 计算每列中不同颜色单元格的数量。我知道这不能通过公式来完成,除非你有 xCELLcolor 插件(我们没有),所以我使用 VBA 编写了一个非常简单的 CountColor 脚本。

我现在可以应用一个公式来计算基于现有单元格颜色的任何彩色单元格,但我无法计算从主电子表格复制的彩色单元格。我不断得到答案“0”或“29”,这是列中单元格的总数!

这是否与主电子表格通过宏分配单元格颜色的方式有关,当将单元格复制并粘贴到“插入式”电子表格时,excel 是否无法识别单元格具有颜色?

我完全被难住了,因为它适用于我手动使用颜色格式化的列! 有什么建议吗?

【问题讨论】:

  • I know this cannot be done through formula unless you have the xCELLcolor add-in (which we don't)?你确定吗 ;)?请参阅 THIS 而不是 24 尝试使用 63 返回单元格的填充(背景)颜色。 =GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),0,-1))
  • 感谢@Siddharth Rout 我可以看到它应该如何工作,不幸的是我无法让它工作。我已将公式输入到名称管理器中,但现在我不确定如何获得我想要的响应。假设我想计算 H2:H30 列中有多少个红色单元格,并在单元格 B36 中返回答案。我有一个我用作参考的单元格 A66 中特定红色的示例。我会在 B36 中写什么公式?感谢您的帮助,毫无疑问,您已经猜到我正在学习 excel!

标签: excel vba colors cell counting


【解决方案1】:

我会使用 VBA 来处理这类事情。键入将这段代码弹出到主电子表格中的模块中:

Public Function CountColouredCells(rge As Range, colour As Integer) As Long

Dim rge2 As Range
Dim count As Long

For Each rge2 In rge
    If rge2.Interior.Color = colour Then
        count = count + 1
    End If
Next

CountColouredCells = count

End Function

然后您可以像使用工作簿中的任何其他 Excel 函数一样使用它:=CountColouredCells(A4:D12,255)

第二个参数是您感兴趣的颜色。 255是红色的。您可以通过录制宏、更改单元格颜色然后查看 VBA 来找出其他人。

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多