首页 > 解决方案 > Excel 不会将单元格视为空白

问题描述

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

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

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

有什么功能/格式吗?

标签: excelvbaexcel-formulaformatting

解决方案


请尝试下一个功能:

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 可用的 Pallete)


推荐阅读