(一)什么是VBA?什么是宏?

  VBA (Visual Basic For Application)是一种编程语言,是建立在Office中的一种应用程序开发工具。可以利用VBA有效地扩展Excel的功能,设计和构建人机交互界面,打造自己的管理系统,帮助Excel用户更有效地完成一些基本操作、函数公式等不能完成的任务,从而提高工作效率。顾名思义,VBA使用的编程语言是VB。

  VBA是编程语言,宏是用VBA代码保存下来的程序。录制的宏只是VBA里最简单的程序,正因为如此,录制的宏存在许多的缺陷:如无法进行判断和循环,不能显示用户窗体,不能进行人机交互……要想打破这些局限,让自己的程序更加自动化和智能化,仅仅掌握录制和执行宏是远远不够的,还需要掌握VBA编程的方法,自主地编写VBA程序。这就是我们学习VBA的目的。

(二)VBA的一个简单应用

                        图1                                             图2

  如图1所示的表格,现在需要将其制作为图2所示的工资条,发给每名员工。你会怎么做?

方法一:复制第一行,不停地粘贴该行。问题是数据量较少时,10、20、50,甚至100这种方法都还能接受,数据量突破200时就显得特别笨了。

方法二:录制宏

录制宏简单而言就是将重复的操作合并为一个动作,然后不断重复该动作。

录制宏前需要如下操作进入宏的录制:

以本题而言,需要集合的操作为  选中目标行——复制——选中要粘贴的位置——复制——选中控制单元格,宏的录制过程即如下:

这样就将一系列的操作整合为了这样一个宏操作,相当于每执行一次宏就执行了一次上面的所有的操作。可以给宏设置快捷键。如图

点击确定后就将ctrl+p设为了名为“生成工资条”的宏的快捷按键,每按一次就执行一次宏。

通过录制宏大大简化了操作,但仍然比较繁琐,如果有1000条数据,需要按键1000次,如果有2000,5000呢?有没有更方便的方法呢?

方法三:录制宏+VBA编程

在方法二的录制宏的基础上继续改进,采用VBA编程的方法。

首先点击宏——查看宏,点击“编辑”

进入VBA编程的代码查看界面

上图是VBA编程界面,代码完全是录制的宏对应的代码。如下:

现在我们需要对这段代码进行修改,直接完成方法二中所需要进行的多次按键操作。共需要修改两处。

第一处:

在Sub 宏名():下面加上如图两行,其中1 To 259 根据实际数据行数进行变化。

第二处:

在End Sub前加上一行Next,使得代码循环。

更改后代码为:

保存代码后,点击宏——查看宏——运行。直接生成所有需要的工资条。

(三)总结

  初次认识了宏和VBA编程,通过简单例子显示了宏及VBA编程的高效,尤其针对大量数据的重复性操作,可以起到指数级的速度提升。

Excel学习——VBA学习(一)的更多相关文章

  1. Excel开发VBA学习

    1.合并字符串A1&A22.拆分字符串LEFT(A2,SEARCH("-",A2)-1)3.下拉选项Data->Data validation->List 1. ...

  2. VBA学习思路

    打算花两三天学习VBA的基础,学习资料为<别怕,VBA其实很简单>,为了快速学习,先了解大致框架,后续再深入学习各种属性.方法和技巧. 1.VBA编程环境基本操作,手工操作,熟悉即可 2. ...

  3. VBA学习笔记

    这是一个学习VBA编程的学习笔记. 一. 介绍 二. 使用手册 2.1. 如何在Excel2010中开始使用VBA? 2.2. 如何使用VBA编辑器进行编程? 三. 语法说明 3.1 数据类型 3.2 ...

  4. 学习VBA

    学习VBA VBA 就是 (Visual basic for Application) 用的比较多的是在Excel中处理数据,可以方便快捷地使用编程方式来对数据进行操作. VBA 数据类型 Integ ...

  5. VBA学习之关于数据透视表的应用

    工作中很多地方需要同时处理多个数据表,而且用数据透视表进行排版,排序,计算字段,一个一个的做非常累,这里给出批量处理的方法. 学习VBA之前最好懂一点点VB的基础知识,因为里面的很多语法问题都是由VB ...

  6. IT人的自我导向型学习:学习的4个层次

    谈起软件开发一定会想到用什么技术.采用什么框架,然而在盛行的敏捷之下,人的问题逐渐凸显出来.不少企业请人来培训敏捷开发技术,却发现并不能真正运用起来,其中一个主要原因就是大家还没有很好的学习能力.没有 ...

  7. IT人的自我导向型学习:学习的3个维度

    看到大家对我的文章赞了不少,看来大家还比较喜欢看.园子里的一些朋友和我说:”终于又看到你要在园子里发原创文章了.几年前就受益匪浅,经过几年的成长分享来的东西肯定也是精品.“ 感谢大家对我的信任,如果你 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. 洛谷$P$2518 计数 $[HAOI2010]$ 数位$dp$

    正解:数位$dp$ 解题报告: 传送门$w$ 感觉省选的数位$dp$还是比较有质量的辣,,,至少有一定的思维难度是趴$QwQ$ 这题要考虑到一个,我认为比较关键的点,就,对于一个位数不满的数,可以理解 ...

  2. 【Python3爬虫】反反爬之解决前端反调试问题

    一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,也就没法运行代码了,直接中断掉了,难道这就能阻止 ...

  3. HDU3555 Bomb 题解 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题目大意:求 \([1,n]\) 范围内有多少数包含"49". 解题思路: ...

  4. Python PyInstaller安装和使用教程

    安装 PyInstalle Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块. 安装 PyInstaller 模块与安装其他 Python 模块 ...

  5. .net core 开车记:Data Protection Key 过期问题与登录页面访问慢

    K8s 船还没修好,.net core 车又出了问题,开着 k8s 豪华邮轮.飚着 .net core 极品飞车的好事真是多磨. 自从我们用上 .net core ,就一直被 .net core 的一 ...

  6. 应急响应&&取证

    查看日志    eventvwr.exe   中了勒索病毒 1.查看download目录有没有病毒样本,C:\Users\86132\Downloads 2.查看系统开放端口 3.导出systemin ...

  7. Oracle基础之保留字和关键字

    Oracle基础之保留字和关键字 在Oracle之中,有分为保留字和关键字,所谓关键字就是Oracle中有实际意义的,而保留字(比如DESC.ORDER等等)是Oracle中不能随便使用的,比如不能随 ...

  8. 【转】Twitter算法面试题详解(Java实现)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://androidguy.blog.51cto.com/974126/1319659 ...

  9. 自动将本地文件保存到GitHub

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这篇文章主要讲讲如何自动将本地文件保存到GitH ...

  10. Spring Boot2 系列教程 (十八) | 整合 MongoDB

    微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 如题,今天介绍下 SpringBoot 是如何整合 MongoDB 的. MongoDB 简介 MongoDB 是由 C++ ...