VBA是我们工作的工具,如果你现在数据处理,数据分析还在用工作表解决,真的要转变一下自己的思路了。EXCEL外接程序介面设置好了给我们利用VBA,为什么不利用呢?有了VBA,你的工作效率,数据的准确性上都会大大的提高。这么好的工具有什么理由不利用呢?

我经常对朋友们说:有了VBA知识,可以受益终生,可以让你在职场中更加从容,对于自己的发展很有帮助,希望你早日上手,早日学有所成。这真的不是一句空话,当你喝著茶水,或者品著咖啡,看著电脑屏幕在飞速运转,把你之前几小时,甚至几天的工作秒杀在几分钟内,你的之前所有学习VBA的辛劳会一扫而空。这时,你的快乐是建立在自己的付出基础之上,何乐而不为呢?

工作中的很多问题是可以通过VBA代码来解决,比如最近很多朋友在问排重的问题:如何在工作表中限制重复值的录入,我在《VBA代码解决方案》的第51讲给出了解决的方案:

如果您采用了这段代码,结合实际的工作环境,不必再发费大量的时间在工作表中去做排重的工作了。

再比如对于重复数据的删除,我在第24讲给出了如下的解决方案:

这些都是针对实际问题给出的非常好用的解决方案。加以利用,会大幅提高自己的工作效率,而且避免出错。

在你利用了VBA后,收获不仅是效率的提高,还有逻辑思维能力的提高。在《VBA代码解决方案》的第62讲中,有下面的一段短短18行的代码,截图:

上述代码的功能仍是排重,然后将数据写入另外的单元格。

我们分析一下上述过程的运行:

1。当程序第一次运行到Temp = Filter(Arr, Splarr(I)) 是什么状况呢?这个时候是一个错误,为什么是错误呢?因为第一次运行到这句代码的时候arr还没有任何值,是不能称为数组的,是不能匹配Splarr(0)的值的。所以我在代码之前要加上On Error Resume Next,

正是有了这句On Error Resume Next,这时的变数r才增加1,后续的代码中才能将此时的Splarr(0)值放到Arr中,让arr的不为空。

2 当第二次运行到上述Temp = Filter(Arr, Splarr(i))语句又是什么状况呢?这个时候Arr就不为空值了,Splarr(1)的值才有可能在arr中进行匹配,如果能匹配上Temp就会成为非空的数组,让UBound(Temp)>=0。如果没有找到,这时UBound(Temp)=-1。当为-1的时候,由于原数组中没有相应的值,所以将r值将增加1。为了保持已经放到arr中的原数据不变,在数据扩充时使用了Preserve . (我们假设提供的原数组中没有空值)

后续的工作类似于上述的2了。

当上述程序在你的大脑中一步一步的运行时,正是你逻辑思维训练的最佳时候。是在锻炼自己大脑的逻辑思维能力,会让你也不易衰老啊。哈哈

确实,学习VBA会带给你很多,会让你的工作效率和工作质量同以前比大幅的提高,同时也在训练著你的思维能力。可是仍有人在不遗余力的问我:「老师,VBA代码我是刚刚接触,能学会吗?」,这是很典型的提问,其实,能否学会在于自己下功夫的程度,世界上没有不劳而获的事情,只要肯下功夫了,肯定会有收获,同时也可以非常肯定的告诉这类朋友:对于VBA而言,学了,总会有所收获;但你不学,是永远不会的。

《VBA代码解决方案》系列电子书,是我将一些非常实用的VBA内容结集成册,PDF格式文件,朋友们可以从中查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668


推荐阅读:
相关文章