2013-04-25 96 views
1

我在Excel 2007中创建了一个电子表格,供教师根据各种参数监视进度和成绩。如何计算通过Excel 2007中的宏分配的单元格颜色?

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

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

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

这是否与主电子表格通过宏分配单元格颜色的方式有关,不会将单元格复制并粘贴到“嵌入式”电子表格?

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

+0

'我知道这不能通过公式来完成,除非你有xCELLcolor加载项(我们不这样做)'?你确定 ;)?请参阅[这](http://stackoverflow.com/questions/15887257/how-to-count-up-text-of-a-different-font-colour-in-excel)而不是'24'与' 63',它返回单元格的填充(背景)颜色。 '= GET.CELL(63,OFFSET(INDIRECT(“RC”,FALSE),0,-1))' – 2013-04-25 10:19:56

+0

谢谢@Siddharth Rout我可以看到这是如何工作的,不幸的是我无法让它工作。我已经将公式输入到名称管理器中,但现在我不知道如何获得我想要的响应。假设我想要计算H2:H30列中有多少红色单元格,并返回单元格B36中的答案。我用单元格A66中的特定红色作为参考。我会在B36中写什么公式?感谢您的帮助,因为您毫无疑问地猜测我在学习excel时正在学习! – user2319034 2013-04-28 07:03:46

回答

0

我会使用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来找出其他人。

相关问题