Excel 不会将单元格视为空白

Posted

技术标签:

【中文标题】Excel 不会将单元格视为空白【英文标题】:Excel does not consider a cell as Blank 【发布时间】:2020-07-13 09:51:56 【问题描述】:

我想定义一个函数或格式,以便“COUNTBLANK()”excel 函数不会将空白视为“灰色单元格”,不允许用户键入任何内容。

例如,假设有一个资产负债表报表,其中单元格 C3 中有一个“灰色单元格”,以便向用户指示她不允许在单元格 C3 内输入任何文字或数字,包括“0$”或“-$”。

假设在 C100 单元格中有一个 COUNTBLANK(C2:C99​​) 函数,以检查 C 列中是否有任何缺失值。该函数将返回 COUNTBLANK(C2:C99​​)=1,因为在单元格 C3 中,用户没有输入任何文字或数字。但是,C3 单元格是“灰色的”并且必须为空,因此不被视为缺失(根据定义)。

有什么功能/格式吗?

【问题讨论】:

您不能用空格或其他不可见字符预先填充这些单元格吗? 单元格是灰色的还是真的受到保护? 如果您事先知道有多少个单元格是灰色,那么只需从COUNTBLANK(C2:C99) 中减去这个数字,或者排除所有不应计算的范围。否则什么时候单元格灰色,如果用户输入数据会发生什么? 如果你有(比如 5 个灰色单元格),只需使用 =COUNTBLANK(C2:C99)-5 对不起@Storax,在发布我的评论之前没有准备好你的评论:) 【参考方案1】:

请尝试下一个功能:

Function CountBlkGray(rng As Range) As Long
   Dim lngGray As Long, c As Range
   For Each c In rng
    If c.Value = "" And (c.Interior.ColorIndex = 15 Or _
            c.Interior.ColorIndex = 2 Or c.Interior.ColorIndex = 48 Or _
                c.Interior.ColorIndex = 16) Then lngGray = lngGray + 1
   Next
   CountBlkGray = WorksheetFunction.CountBlank(rng) - lngGray
End Function

你可以像公式一样简单地使用它:

=CountBlkGray(A1:A16)

它会将灰色单元格视为非空白单元格...

但你必须使用标准的灰色(来自 Excel 可用的调色板)

【讨论】:

【参考方案2】:

您可以使用here 找到的以下函数,而不是像其中一个 cmets 中提到的那样向单元格添加空格并保护它们。 使用此功能,您可以计算rRange 中与rColor 相同颜色的单元格数

    Function ColorFunction(rColor As Range, rRange As Range, Optional StrCond As String) As Long

    Dim rCell As Range
    Dim lCol As Long
    Dim vResult As Long

    lCol = rColor.Interior.color

    For Each rCell In rRange
        If rCell.Interior.color = lCol Then
            If StrCond <> "" Then
                If rCell.Value = StrCond Then
                    vResult = vResult + 1
                End If
            Else
                vResult = vResult + 1
            End If
        End If
    Next rCell

    ColorFunction = vResult
End Function

那么就不用担心颜色了,因为你在函数中选择了颜色作为参数。

你的公式将是

COUNTBLANK(C2:C99) - ConditionalColorFunction(C3,C2-C99)

【讨论】:

以上是关于Excel 不会将单元格视为空白的主要内容,如果未能解决你的问题,请参考以下文章

求助excel单元格不同自动添加3个空白行

Excel如何用文本填充所有选定的空白单元格

请教JAVA使用POI导出excel处理空白单元格的问题

阅读 Excel Open XML 忽略空白单元格

Excel中如何定位空值单元格

将空白 Excel 单元格保存到 Rails Postgres 数据库