01
VBA全称是指Visual Basic for Applications,它是一个来自Microsoft的事件驱动的编程语言。 基本语法源自VB语言,和微软的office办公套件的内置函数完全兼容,现在它主要用于Microsoft Office应用程序,如Excel,Word和Access。
从office97开始,VBA作为MS的标准内置配置,弥补了excel内在的基本函数不足以支持的复杂计算,提供了一种相对轻量级的、所见即所得的解决方案,涛哥在21世纪初因内部工作需要(统计代码行数记工作量)第一次接触了VBA,并在以后的工作中多次出色的完成相关任务,甚至给涛嫂编的几个小程序大大提升了她们的工作效率,还受到了时任行长的赞许,现在想来还历历在目。
02
VBA的应用
可能有人会说了,excel有非常丰富的内置函数库,能满足大多数场景的需要,VBA就没必要学了吧,也对也不对,涛哥有个专辑专门介绍这些常用函数的使用方法,确实,对于简单的场景或者说对于大多数对excel了解不深的人来说,学几个函数觉得老神奇了,但是对于稍微复杂一点的场景就显得无能为力,即使看起来挺简单的场景。
下面我举个例子:某小学的数学老师需要编排一套口算题,大概有50页,每页100道题,内容来源不详,但有一个要求,那就是每页的题不能有重复的,不同的页可以重复。
这个要求不高,看似也不难,如果是你你会怎么做?思考10秒钟……
估计大部分人首先想到的是一页页对比,50页5000道题,工作量可想而知,涛哥也搜肠刮肚的想了挺多方法,最终还是觉得用VBA来实现最快最准确。
下面这40行代码就可以完成任务,它把每页的重复题目标成红色,并统计出共有多少道重复的题目。
03
找门儿VBA
打开VBA窗口的方法有三种,一种是在菜单中调出;第二种方法是在sheet页点击鼠标右键调出;第三种方法是通过快捷键ALT+F11调出。
直线双图文字
VBA窗口
03
敲门儿VBA
几个常用术语:
模块
是编写代码的区域。可通过插入模块的方式创建,插入模块完成之后,就可以在模块中编写VBA代码,代码写在一个过程(Sub)中。一个过程/子过程是一系列的VBA语句,指示要做什么工作。
程序/过程
程序(也叫作过程)是作为一个整体执行的一组语句,它指示Excel如何执行特定的任务。执行的任务可能是一个非常简单或非常复杂的任务。不过,把复杂的程序分解成小的程序是一个很好的做法。
程序的两种主要类型,它们分别是:子程序(Sub)和函数(Function),下面就是其中的一段代码:
函数
函数是一组可重用的代码,可以在程序中的任何地方调用。这消除了一遍又一遍地编写相同的代码的需要。这有助于程序员将大型程序划分为许多小型且可管理的功能。
除了内置函数外,VBA还允许编写用户定义的函数,并在 Function 和 End Function 关键字之间写入语句。
例如下面的这个获取文件名的函数就可以在不同场合使用call来调用。
04
入门儿VBA
要想学VBA,首先要知道宏,要学会录制宏,这可以很好的助力vba代码的编写,下面演示一个添加宏的例子,就算VBA的入门礼儿了。
05
写在最后
很多人一提到编程就觉得很神秘,一听说程序猿就觉得是火星物种,其实看了此文会发现原来人人编程不是梦。
编程的本质是将实在世界转化成虚拟的逻辑流将处理过程交给计算机,我们只需要知道有什么,要什么,中间的逻辑是什么,也就是规则,规则是编程实现的基础,退一步看,无非是一些条件判断、循环,稍微再加上一些处理的技巧而已,这么想你就不会对编程望而却步了。
但也不是说谁都可以像编小曲儿一样说编就编的,至少它在底层逻辑方面要求具备数学、计算机、哲学、逻辑学、美学、甚至心理学等学科的一些思路和思维方式的,也许有时你不一定意识得到。
不过任何事情到了高阶都不会太容易,好在VBA让你入门儿不成问题,它无需专门安装,不用编译,所见即所得,轻量级,与Excel的天然融合,语法的简洁简单,可视化等优势,是很多像java,C语言等传统的重量级编程语言无法比拟的,只需要稍微深入那么一点点,将会让你在数据的处理工作方面一个小时胜过别人一整天……
联系客服