如何统计在Excel 2007中通过macros分配的单元格颜色?

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

为了创build参数的规则,我使用了一组出色的macros,并且包含学生成绩的单元格根据它们是否在预期水平(黄色,红色和绿色原始I知道!!)。

我现在正在创build一个“插入式”电子表格,让工作人员可以从母表(包含年度组中的所有学生)中复制和粘贴,并专门针对他们自己的class级获取反馈。 一切都运转良好,直到我来到我认为最简单的部分 – 获得Excel的每列中不同颜色的单元格的数量。 我知道这不能通过公式来完成,除非你有xCELLcolor加载项(我们不这样做),所以我用VBA编写了一个非常简单的CountColor脚本。

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

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

我完全难住,因为它适用于我手动使用颜色格式化的列。 有什么build议么?

我会使用VBA这种事情。 在主电子表格中input以下代码到模块中:

 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是红色的。 你可以通过logging一个macros,改变一个单元格的颜色,然后看VBA来找出其他的。