ExcelVBA | Excel空值无法定位的原因是这个!附代码

评论2,718字数 1160阅读3分52秒阅读模式
今天在处理发票导出文档时发现单元格为空,使用Ctrl+G定位空值时,没有定位到,Ctrl+F就可以查找到,百度后发现端倪。原来是“真空”与“假空”的原因

转换假空值单元格为真空值单元格代码

Sub 转换假空值单元格为真空单元格()
    
    Dim rCell, 最大行 As Range
    Application.ScreenUpdating = False
    On Error Resume Next
    Set 最大行 = Sheet1.Range("A65535").End(xlUp) '计算最大行
    For Each rCell In Sheet1.Range("A1:R" & 最大行.Row)
        If rCell.Text = "" Then rCell.ClearContents
    Next
    Application.ScreenUpdating = True
    On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
    
End Sub


 

相关资料

精彩文章:excel中如何批量将“假”空单元格转换为空单元格_Office教程学习网

文章原文▼

EXCEL无法定位空值? - 知乎

如何定位空值:F5>定位条件>空值

开心的按了回车之后,本来美滋滋的觉得自己又省下一个小时的工作时间,结果发现:

ExcelVBA | Excel空值无法定位的原因是这个!附代码

直接定位到了最后一行?明明好几百行空值呐!

选择所有数据>定位条件>空值

ExcelVBA | Excel空值无法定位的原因是这个!附代码

我都看见空值了,结果你告诉我没找到?

解决办法:

选择所有数据>替换为AAA>再将AAA替换为空>定位单元格>选中所有空值

ExcelVBA | Excel空值无法定位的原因是这个!附代码
ExcelVBA | Excel空值无法定位的原因是这个!附代码

原因:

定位与查找的本质区别:

当你用定位这个条件来定位空值的时候,实际上是让EXCEL去定位空单元格,

而你用查找这个条件来查找空值的时候,实际上是让EXCEL去查找数据。

真空与假空:

一个单元格,我们什么都不录入,或者录入后又删除了,那它就什么都没有,我们称它为“真空”单元格。

如果一个公式我们由种种原因(公式、转义等)产生了空文本,这样的文本经过复制粘贴之后的数值也是空的,虽然看着是空的但是实际上是“”,我们称这种情况为:“假空”。

定位会定位“真空”

查找会查找“假空”

ExcelVBA | Excel空值无法定位的原因是这个!附代码
我们用=ISTEXT来判断一下空值是真空还是假空

看到了么,除了最后一个是“真空”以外剩下的都是“假空”,这也就是为什么最开始我们定位定到最后一个单元格,而查找却可以查到其它的单元格


1.如果我想将“假空”单元格替换为文本怎么办?

在替换内容中输入=“”再替换,因为此时单元格是文本形式,其中的=存储为文本形式要加上,如下:

ExcelVBA | Excel空值无法定位的原因是这个!附代码
定位空值未定位A2
ExcelVBA | Excel空值无法定位的原因是这个!附代码
真空就是什么都没有,所以查找内容什么都不填
ExcelVBA | Excel空值无法定位的原因是这个!附代码
假空的话只是看起来空,所以替换要输入文本的内容

PS.因为EXCEL是国外开发的,语言环境默认情况下是英语,所以在输入括号、引号、逗号等等符号的时候一定要改为英语哦,不然也是会报错滴~

公众号:CC船长

希望我们共同成长,变成自己的太阳。

部分文章来源于网络  如有侵权请告知本人立即删除!

站长邮箱447800330@qq.com

匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定