编辑:为什么这个公式不会做我认为应该做的

时间:2018-01-24 00:38:17

标签: excel-vba vba excel

编辑本问题:

之前我问了一个问题,如果一个单元格是彩色的,那么从计数中排除行。我想我已经能够找到一个可以实现我想要的功能,但是当我在电子表格中调用该函数时,它会返回一个#VALUE错误,我不知道为什么。

Function CountRemaining(nameRange As Range, countRange As Range) As Integer
Dim TotalCount As Integer
Set nameCell = nameTarget
For Each nameCell In nameRange
    If nameCell.Interior.ColorIndex <> 12 Then
        Set countCell = countRange
        For Each countCell In countRange
            If countCell.Value = "x" Then
                TotalCount = TotalCount + 1
            End If
        Next countCell
    End If
    Next nameCell

CountRemaining = TotalCount
End Function

我给名字范围指定人名的范围(我收到项目时手动着色的单元格),并且项目的范围进入计数范围(用他们所拥有的项目用x表示)。

逻辑上这个功能对我来说很有意义,但我看不出这个缺陷。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

我建议在姓氏旁边添加一个新列(例如,将其命名为include / exclude),并根据姓氏背景颜色的颜色将此列设置为0或1。

您可以通过转到Excel的名称管理器(在公式下)并创建新的并为其命名(lastnamecolor)来读取单元格的颜色。然后 在引用字段中插入以下公式: = GET.CELL(63,INDIRECT( “RC [-1]”,FALSE))

其中63表示单元格的背景颜色,rc [-1]表示上一列的背景颜色。 现在在我们插入的包含/排除列(在姓氏旁边)中为所有行添加了以下公式:

=(IF(lastnamecolor = 10,0,1))

这将检查每行的姓氏的颜色,如果它是绿色(= 10),则显示0,否则显示为1.

现在你应该在姓氏旁边得到0或1,你可以在公式中包含这些值,通过将每个项目乘以该值来计算总数,然后再将其添加到总数中。