用好VBA的话确实可以让你的工作效率带来质的提升。如果有人跟你说可以用Python什么的语言处理Excel,你可以无视他了。毕竟大部分人并不是计算机专业人员,只不过是为了提升自己的效率而已,说白了只是为了实用的目的学的。那么VBA应该怎么学呢?当然VBA可以有很高级的用法,其实VBA主要有两部分的内容:Visual Basic的语法和Excel的对象模型体系。如果这两部分都搞懂了,实践中遇到问题,上网搜搜就可以了,或者关注公众号URItker多模仿学习。首先你需要了解的其实只是一个中心—“变量”,两个基本点“过程和函数”和三个代表“顺序、判断、循环”。只要你建立了这些概念,就可以开始边练边学了。VBA和C语言一样都是命令式的语言,变量是执行计算的中心,也就是编程的过程,多数时候是在对变量进行加工。这个概念就好比数学里面的函数,有个原变量,函数加工之后就得到了因变量。比如要求平方。 Dim X as Integer X = 5 X = X * X 上面的代码里面X就是个变量,X = 5是给X一个初值,X = X * X就是对X进行的加工,也就是求平方。VBA区分过程与函数,实际上这两个基本一样。函数是什么?这里的函数,其实和数学的函数很像,把变量丢进来(参数),产出就函数的返回值。还是举平方的例子:Function Square(Num As Integer) Square = Num * Num End Function
Sub Fun1() Debug.Print Square(5) End Sub 函数就是Square,和函数同名的变量就是你要返回的值。把变量Square的值设置为你要返回的值就可以了。过程呢,也就是Sub,其实就是不返回值得函数。上面的过程Fun1里面调用了我们写的函数Square,传入了一个参数5。“顺序”是最基础的语句执行模式,说白了就一句接着一句的执行。上面代码就是顺序执行的一个例子。先赋初值给X,然后再求平方。 “判断”呢,就是说,根据某个判断结果,来选择执行那些语句: If X > 5 Then ' Do something Else ' else is optional ' Do elsething End If “循环”就是重复做某件事情,这大约是最能解放你双手的语句了。比如要求1~100的和,那么可以X=X+1 X=X+2 …… X=X+100,是不是快累死了?没关系,循环解救你:Dim Sum as Integer
Sum = 0 For i = 1 to 100 Step 1 Sum = Sum + i Next
Debug.Print Sum
上面的代码应该挺直白,说白了就是设置一个变量Sum,设初值为0,然后从(For)1加到(to)100,然后Debug.Print Sum把最后结果打印出来。 当掌握了一个中心两个、基本点和三个代表以后,就要了解怎么用VBA操作Excel了,这一部分是VBA(Visual Basic for Application)中for Application的部分。于是Excel的VBA对象模型就登场了。其实也就是Application代表Excel程序,Workbooks代表所有打开的Excel文件的,Sheets代表Excel文件里面的表单,Range代表一个单元格区域什么的。比如:就是将当前表单的A1单元格的值设置为1。打开VBA的录制宏,试一试你就了解了,很简单的!Good luck,希望本公众号里的文章能够助力你的成长。
|