【问题标题】:How would I count the number of coloured cells in an Excel worksheet ?如何计算 Excel 工作表中彩色单元格的数量?
【发布时间】:2015-04-09 00:12:34
【问题描述】:

我的 Excel 文件中有许多工作表,如果工作表上的某些单元格未填写,它们将填写为“Red”。

我想要的是在它自己的页面上,比如说我称之为“Cells that aren't filled Worksheet”,我希望每个工作表名称都在左侧,旁边填充“Red”的单元格数,以便用户知道要填写的内容以及在哪个页面上。

我是 Excel 的新手,因为我从高中起就没有使用过它。是否有一行简单的代码可以应用于单元格来计算该工作表上某些彩色单元格的数量?我在网上查了一下,有关于使用VB的讨论,我从来没有使用过,所以我只是想知道是否有更简单的方法:)

提前致谢

【问题讨论】:

  • 好的,很高兴知道,假设我得学习一点VB,谢谢
  • 您不能计算彩色单元格,但可以计算给定范围内的空白单元格。如果您事先知道有问题的单元格范围,那么您只需自己添加工作表名称。简单使用 COUNTIF 会发现空白单元格:COUNTIF(range, "=")
  • 啊,太酷了,我可以这样做,但是在可选列之间有一些必填列,这意味着我要为每一列而不是一次写出整个工作表 :( 没关系,我找到了希望我可以使用的简单脚本并不难实现。感谢您的输入:)
  • @pnuts,更简单。不知道该函数存在。
  • @pnuts,就其价值而言,这两个函数以不同的方式处理带有单个撇号的单元格。 COUNTBLANK 似乎将=' 视为空白,而 COUNTIF 不考虑该空白,因为从技术上讲,该单元格中有一些东西。

标签: vb.net excel vba


【解决方案1】:

您只能使用某些 VB 按颜色计算单元格,例如:

Function CountColorIf(rSample As Range, rArea As Range) As Long
Dim rAreaCell As Range
Dim lMatchColor As Long
Dim lCounter As Long

lMatchColor = rSample.Interior.Color
For Each rAreaCell In rArea
    If rAreaCell.Interior.Color = lMatchColor Then
        lCounter = lCounter + 1
    End If
Next rAreaCell
CountColorIf = lCounter

然后一个公式如:

=CountColorIf(N9,F5:F9)

N9 是参考颜色的单元格,F5:F9 是要检查的单元格范围。

我认为在没有 VB 的情况下尝试找到一种方法会比使用...更复杂...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多