VBA for Excel 基础

今天温习了一下VBA的基础,许久不用,捡起来还真是非常生疏,VBA是Visual Basic的一种宏语言,其实就是一中面向对象的编程语言,学过C的同学可以非常容易的入门。

VBA可以非常高效的处理大批量数据,而且是“一劳永逸”。比如你要做公司年度销售情况的汇总分析表,可能有数百张表,每张表又有数百条信息,人工去做不仅低效而且容易出错,而编写VBA程序则可以在数分钟之内全部处理完,当然你编写程序可能需要一天的时间,但是这个时间相信已经是大大减少了,而且一次编写完成以后只要公司销售表格不变更,就可以一直用下去。

VBA简单实用,无论是写没写过代码的人都可以轻松掌握,对于产品经理来说,熟悉使用VBA对锻炼自己的数据分析能力也很有帮助,本文就介绍一下VBA的入门基础知识(以excel2010为例),想要深入学习VBA的话,个人推荐网易云课堂的杨老师的“全民一起VBA”,课程非常有趣,感觉杨老师转行段子手也大有发展(掩面)。

启用宏,并打开宏编辑器

打开excel 选择文件-->选项,找到自定义功能区把开发工具勾中


然后就会发现导航栏多了一个栏目:开发者工具


找到宏安全性,选择启用宏


然后excel就可以执行宏代码了,点击Visual Basic进入VBA代码编辑模块


注意这里编辑完代码之后,excel保存的格式要变更为xlsm,而不是xlsx,不然的话宏代码就不能被保存了,辛辛苦苦写的代码也就没了。

到这里,我们就可以正式编写宏代码了

示例

我写了一段特别简单的代码作为示例展示一下,代码的主要功能是把全校各个班级的成绩表汇总到一张表格,并计算总分。



下面解释一下,首先添加控件,非常简单,拖入表格即可


然后将拖入的按钮关联到一个宏



一般是新建一个宏,宏名随意,建议英文,这样不同环境下的程序才都可以执行

代码解释

Sub 宏名()

    代码块

end sub

以上的形式为一个宏,代码块填写你要执行的逻辑

单元格

Cells(i,j)代表第i行第j列的单元格

Range(“A7”)代表A7单元格

变量声明

Dim 变量名

VBA变量允许不声明使用,但是不声明会带来很多不必要的麻烦,比如你代码块中写错一个变量名,系统会认为你这是在使用一个新的变量,从而不会报错,注意使用Dim的时候需要在代码区首行添加“Option Explicit”

运算符

“=”是赋值或是判断语句中判断相等的含义

“+”加法,“-”减法,“/”除法,“*”乘法

“&”字符串连接


上述代码就是计算第一行一列的单元格中的数值和第一行第二列单元格的数值相加,把结果显示在第一行第三个单元格里

逻辑判断符

”>“大于,“<”小于,“>=”大于等于,“<=”小于等于,“<>”不等于

循环语句

For 变量 = 数值1 to 数值2 step 数值3

Next

含义:变量从数值1开始变化,每次变化幅度为数值3,知道变化为数值2跳出循环

Do while 判定逻辑

    代码块

Loop

含义:判定逻辑为正则循环执行代码块,直到逻辑判断为负,注意这里容易进入死循环,一定要检查代码块中的代码是否能使判定逻辑变负从而跳出循环

函数

Function 方法名(参数1,参数2,.......)

    代码块

    方法名=返回值

End Function

函数使用规则与C语言中类似,只不过返回值不用retrun,而是用 方法名=要返回的值。

先酱紫,关于VBA欢迎与我交流,共同进步。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 22,046评论 6 49
  • 我们在Excel中整理、分析和处理数据时,都是围绕单元格进行大多数操作,因此Range对象是Excel VBA中最...
    完美Excel阅读 12,163评论 1 12
  • 自从2014年开通[完美Excel]微信公众号以来,坚持分享已经学习到的Excel和VBA知识和心得,目前已分享文...
    完美Excel阅读 12,591评论 6 69
  • 一阵辽远的钟声 轻轻掠过我的心上 响吧,秋天的短歌 远远地,远远地 一直响到 漫山红遍的山谷 当你见到一支海棠 就...
    西川锦阅读 1,222评论 0 1
  • 如来 你今何在 那一战我不认败 紫金玉铠尚还在 谁的掌中写无奈 是谁在戴这金箍 脸上写了一句输 手持铁棒的匹夫 怎...
    Kkk灬荀文若阅读 3,704评论 1 1