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

[mark_a]今天在处理发票导出文档时发现单元格为空,使用Ctrl+G定位空值时,没有定位到,Ctrl+F就可以查找到,百度后发现端倪。原来是“真空”与“假空”的原因。[/mark_a]

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

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>定位条件>空值

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

图片[1]-ExcelVBA | Excel空值无法定位的原因是这个!附代码-习听风雨

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

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

图片[2]-ExcelVBA | Excel空值无法定位的原因是这个!附代码-习听风雨

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

解决办法:

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

图片[3]-ExcelVBA | Excel空值无法定位的原因是这个!附代码-习听风雨
图片[4]-ExcelVBA | Excel空值无法定位的原因是这个!附代码-习听风雨

原因:

定位与查找的本质区别:

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

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

真空与假空:

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

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

定位会定位“真空”

查找会查找“假空”

图片[5]-ExcelVBA | Excel空值无法定位的原因是这个!附代码-习听风雨
我们用=ISTEXT来判断一下空值是真空还是假空

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


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

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

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

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

公众号:CC船长

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

「如果文章对您有用,欢迎点赞分享。」
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容