首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ExcelVBA8.38玩转Excel公式VBA让错值不可见

Excel中最常用的依然是公式,虽然VBA非常强大,但是并不是所有人都喜欢写代码,相对于VBA,函数公式的好处就是现成的,可以拿来即用,这也是大家非常喜欢函数的原因。那么VBA是不是可以和函数公式一起使用呢?答案自然是肯定的,不仅仅如何VBA还可以弥补很多公式中的不足,比方说我们今天的场景。

隐藏计算结果中的错值!

场景说明

还是我们上节的场景,这里我们随意的更改一些数据,构造一个计算错值的结果,可以看到已经有了两行数据中出现了错值

这样的错值出现在数据中看起来非常的难看,并不美观,我们不可能在提交给领导的数据表格中出现这样的结果的

如果错值不可避免,那么有没有办法隐藏错值呢?

肯定会有小伙伴说,我可以删除错值

没错,可以删除错值,但是同时你也删除了公式,后面需要的时候,你有需要重新写公式,非常的麻烦,并不是一个高效的办法,今天我们用VBA来让这些错值隐藏,同时不会改变单元格本身的公式。

代码区

Sub tests

Dim rng As Range, a As Range

Set rng = ActiveSheet.UsedRange

For Each a In rng

a.Font.Color = a.Interior.Color

rng.NumberFormatLocal = "[黑色]G/通用格式"

Next

End Sub

看看效果

参考上面的演示,我们可以看到公式计算的错值已经成功被隐藏,但是单元格本身的公式还是存在的,并没有操作公式的删除,如果你修改为正确的数据,单元格本身的公式还是可以计算,返回正确的结果的。

这个代码最终的作用,仅仅是隐藏了错误的结果,并没有修改单元格的公式,这就是VBA真正强大的地方

代码解析

来看看今天的代码,看起来代码非常的简单,如此简单的代码居然可以实现这么神奇的效果外面的框架,我们就不再花时间讲述了,直接进入今天的主体For Each a In rng

a.Font.Color = a.Interior.Color

rng.NumberFormatLocal = "[黑色]G/通用格式"

Next

遍历整个单元格区域

首先第一步

有认真学习过之前单元格颜色的小伙伴一定能够看到代码的,将单元格的字体颜色变成单元格本身的颜色这个代码实现起来有什么效果呢?

不瞎猜,直接上代码

可以看到,当代码执行到这一句的时候,我们看到对应的第一个单元格内容,肉眼已经不可见了,但是单元格本身的内容还是存在的

为什么呢?因为单元格背景色是白色,而我们将字体也设置成了白色,那么肉眼肯定看不到具体的内容了,就是这个效果。换个角度想,不管这个单元格的结果是错值还是正确的结果,经过这句代码的加工,都已经是肉眼不可见了,但是保留单元格本身的内容/公式。

是不是已经有了一点味道了。

错值不可见是我们想要的结果,但是正确的结果也不可见就不是我们想要的结果了,那么如何让正确的结果展现出来呢?

就是下一句代码了。

rng.NumberFormatLocal = "[黑色]G/通用格式"

设置单元格的数字格式,让错误值以外的值显示为黑色

在看看这句代码的效果

我们可以看到通过这句话代码之后,原来不可见的内容有可见。当然是非错值,如果是错值的话,依然还是不可见的。 简简单单的两句代码,就可以实现我们之前不可能实现的效果。

学好VBA,再搭配函数公式,这才是玩转Excel的最佳途径

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210317A00TSS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券