excel如何识别空单元格和空白单元格?

excel如何识别空单元格和空白单元格?

浏览次数:1204次
信息来源: 银河系资源网
更新日期: 2022-05-06
文章简介

Q:在使用Excel时经常听到单元格为空或空白,这样的说法有区别吗?A:在Excel中,单元格为空(empty)或空白(blank)似乎可以互用,但它们有不同的含义:空单元格指没有包含任何内容的单元格,在其中没有常量、没有...

Q:在使用Excel时经常听到单元格为空或空白,这样的说法有区别吗?

A:在Excel中,单元格为空(empty)或空白(blank)似乎可以互用,但它们有不同的含义:

空单元格指没有包含任何内容的单元格,在其中没有常量、没有公式、没有前缀字符。

空白单元格指该单元格可以是空单元格、可以包括前缀字符或者空字符串(公式结果为空或者常量值)

在工作表中,检查单元格为空的最好方法是使用ISBLANK工作表函数,如下所示。

在中,第3行各列是第2行对应列中输入的结果,在单元格B3中直接输入字符串“ Excel”,在C3中输入公式=””,在D3中输入前缀字符撇号,E3中什么也没有输入。第4行使用ISBLANK函数判断第3行对应列中的单元格是否为空单元格。

在VBA中,当单元格为空时,Range.Value属性和Range.Value2属性返回Variant/Empty,因此VBA代码检查单元格是否为空最好的方法是使用IsEmpty函数。

对于所示的工作表,检查单元格是否为空的VBA代码:

SubCheckIsEmpty()

Debug.PrintIsEmpty(Sheet1.Range(“B3”).Value2) ‘结果为False

Debug.PrintIsEmpty(Sheet1.Range(“C3”).Value2) ‘结果为False

Debug.Print IsEmpty(Sheet1.Range(“D3”).Value2) ‘结果为False

Debug.PrintIsEmpty(Sheet1.Range(“E3”).Value2) ‘结果为True

End Sub

COUNTBLANK工作表函数与ISBLANK工作表函数对应的行为不一致。COUNTBLANK函数统计空单元格、具有空字符串的单元格和包含前缀字符的单元格,可以用于检查单元格是否为空白单元格(显示的是空),如所示。

在中,第4行使用公式=COUNTBLANK(单元格)=1判断指定单元格是否为空白单元格;在单元格B6中使用公式=COUNTBLANK(B3:E3)统计单元格区域B3:E3中空白单元格数。

在VBA中,可以使用Range.Value(或Range.Value2)属性与vbNullString常量相比较的结果来判断单元格是否为空白单元格:

SubCheckIsBlank()

Debug.PrintIsBlank(Sheet1.Range(“B3”)) ‘结果为False

Debug.PrintIsBlank(Sheet1.Range(“C3”)) ‘结果为True

Debug.PrintIsBlank(Sheet1.Range(“D3”)) ‘结果为True

Debug.PrintIsBlank(Sheet1.Range(“E3”)) ‘结果为True

End Sub

FunctionIsBlank(ByRef rngCheck As Range) As Boolean

IsBlank = (CStr(rngCheck.Cells(1).Value2) =vbNullString)

End Function

还有一个更有效的方法是调用工作表函数COUNTBLANK函数:

Sub IfIsBlank()

Debug.PrintIfBlank(Sheet1.Range(“B3”)) ‘结果为False

Debug.PrintIfBlank(Sheet1.Range(“C3”)) ‘结果为True

Debug.PrintIfBlank(Sheet1.Range(“D3”)) ‘结果为True

Debug.PrintIfBlank(Sheet1.Range(“E3”)) ‘结果为True

End Sub

FunctionIfBlank(ByRef rngCheck As Range) As Boolean

IfBlank =(Application.WorksheetFunction.CountBlank(rngCheck.Cells(1)) = 1)

End Function

最后,再谈谈空字符串。空字符串是一个长度为的字符串,可以包含常量或者公式结果(为空)。例如,公式=””返回一个空字符串。如果你复制这个公式并粘贴为值时单元格中包含的空字符串为常量,有时从外部数据源导入数据时也会得到空字符串。

下面的HasNullString函数在单元格中包含空字符串时返回True。如果想要忽略公式结果(例如,仅检查常量),那么给参数blnConstantsOnly传递True。如果单元格中有前缀字符,那么该函数返回False。

Public FunctionHasNullString( _

ByRef rngToCheck As Range, _

Optional ByVal blnConstantsOnly AsBoolean = False) _

As Boolean

Dim rngFirstCell As Range

Dim strToCheck As String

Dim varToCheck As Variant

Set rngFirstCell = rngToCheck.Cells(1)

varToCheck = rngFirstCell.Value2

If Not IsEmpty(varToCheck) Then

If blnConstantsOnly Then

strToCheck = rngFirstCell.Formula

Else

strToCheck = CStr(varToCheck)

End If

If strToCheck = vbNullString Then

HasNullString =(LenB(rngFirstCell.PrefixCharacter) = )

End If

End If

End Function

标签: 暂无标签
excel VBA代码怎么在单元格中输入数组公式?
« 上一篇
替换excel工作表中图片怎么保持图片位置和大小不变?
下一篇 »
  • 如何计算同一单元格中的Excel数据的公式和?
    750476阅读
    在某些表格中,我们需要将所有数据输入到一个单元格中来计算公式,而通用公式是在不同的单元格中计算的。我们应该如何计算这种情况?在这里,小王先生将与大家分享几种常用的方法。1.用户定义的名称首先,输入公式定...
  • 按日期记录的产品销量,SUMIFS帮你按月统计
    703294阅读
    今天,朋友传来EXCEL文件,内有两张工作表,一张是按照日期记录的商品销量,另一张是按月统计的模板,请帮忙统计每种产品的月销量。商品销量记录表:按月统计的模板:关键操作第一步:TEXT函数建立辅助列在日期列前插...
  • excel从字符串中提取数字——数字位于字符串开头
    280928阅读
    本文主要研究从字符串开头提取数字的技术:1. 这些数字是连续的2. 这些连续的数字位于字符串的开头3. 想要的结果是将这些连续的数字返回到单个单元格对于下面研究的每种解决方案,我们需要在两种不同的情况下测试其健...
  • excel按类别分页打印,有时需要强制
    129536阅读
    今天,就有位朋友提出一个很实用的问题:有时候需要按照类别打印,比如以下数据样表,需要按地区分页打印:怎么办?两种方法:一、筛选后打印这种方法,可能大家都会用到:先按照不同地区筛选,筛选一次打印一次。如...
  • Excel表格日期公式和快捷技巧教程
    100566阅读
    Excel表格日期公式和快捷技巧教程1.excel日期的快捷键方法。首先,让我们介绍快捷键的方法(不需要公式)。方法很简单,在细胞里,同时按两个快捷键:Ctrl你可以得到当前日期。注意:1)不需要输入号码。2)其中;在英文...
  • excel公式教程:找到和的加数
    79918阅读
    有时候,我们给出一个目标值,想要知道这个值是已经提供的一系列值中哪几个值的和。如下图1所示,在单元格A2中给出了目标值47,在单元格C1:K1中有9个值,现在我们想知道这些值中哪些值相加等于47,在这些值的下方单元...
  • Excel中F8键的妙用
    47136阅读
    键盘上的键有什么用呢?今天我们一起来看看键在excel表中能发挥什么作用呢?1、使用F8键的功能选取单元格区域:比如:我要选中区域B2:D7这还不简单啊,直接用鼠标选取就行啦,对,没错,但是除了使用鼠标直接选取外,...
  • Excel中Rank函数排名
    31805阅读
    EXCEL中有一个很神奇的函数“RANK”,他能够将数字的排名单独显示在另一列,而且可以去除重名次。所显示的结果是有多少人就显示多少名。下面小编就来与大家分享一下,希望对大家有点帮助。1.返回一列数字的数字排位。...
  • “Excel批处理”成批修改文件名 以帮助您组织文件!
    31447阅读
    操作方法步骤1:首先定义名称,引用位置是[=FILES(‘D:\ my folder \ *。docx ‘)];自己设置驱动器号路径!查看您需要组织文件夹的位置,并设置它!然后,在单元格A1中输入[=INDEX(名称,行(A1))]的引...
  • Excel一学就会的饼图制作技巧
    20269阅读
    如何用饼图来展示任务完成百分比。先看效果:要实现这样的效果,其实很简单,接下来咱们就看看具体的操作过程:步骤1 准备数据源B1单元格中输入完成率,B2单元格中输入公式计算剩余量:=1-B1步骤2 插入饼图步骤3 设置...

如本文对您有帮助,随意赞赏一下!