(一)什么是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. mysql中information_schema.views字段说明

    1.查看视图并不是查询视图数据,而是查看数据库中已经存在的视图的定义,查看视图必须要有SHOW VIEW权限,MySQL的数据库下的user表中存储这这个数据.查看视图的方法有:DESCRIBE,SH ...

  2. DEVOPS技术实践_01:jenkins集成平台

    一.准备环境 准备三台机器 角色 IP地址 用户名 密码 jenkins-master   172.25.254.130    admin   meiyoumima gitlab 172.25.254 ...

  3. 从零开始のcocos2dx生活(十)ScrollView

    目录 简介 基础变量 ScrollViewDelegate Direction _dragging _container _touchMoved _bounceable _touchLength 方法 ...

  4. 【题解】BZOJ4548 小奇的糖果(树状数组)

    [题解]BZOJ4548 小奇的糖果(树状数组) 说在前面:我有个同学叫小奇,他有一个朋友叫达达,达达特爱地理和旅游,初中经常AK地理,好怀恋和他已经达达一起到当时初中附近许多楼盘的顶楼逛的时光... ...

  5. 【题解】CTSC1999家园(网络流)

    CTSC1999家园 建模方法类似我NOI2019网络同步赛我的T1写法[[题解]NOI2019Route](70分) 问题的焦点是:空间时间载具. 考虑如何击破时间限制,可以对每个点关于每个时刻建立 ...

  6. 【题解】P4841 城市规划(指数型母函数+多项式Ln)

    [题解]P4841 城市规划 P4841 城市规划 超级弱化版本(DP):POJ - 1737 两张图不同当且仅当边的分布不一样的时候,带编号最后乘一个阶乘即可,现在最主要的问题就是"联通& ...

  7. Win10系统服务器搭建--服务器管理

    Win10系统中的Web服务器是什么? 在局域网中进行资源共享,以便Win10使用者时刻都能将个人数据传达服务器端中,快速执行数据的同步. 如何搭建Web服务器呢? 我分享的第二种解决Web服务器怎样 ...

  8. 如何根据HttpServletRequets获取用户真实IP地址

    最近的一个项目的某个功能获取用户的ip地址,添加用户的系统使用记录. 我发现当我直接使用getRemoteAddr()方法从HttpServletRequet中获取用户的ip时,获取到的是服务器的ip ...

  9. 1087 有多少不同的值 (20 分)C语言

    当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: ...

  10. mysql报错1548-Cannot load from mysql.proc. The table is probably corrupted

    我的版本是5.5.53, 进入到MYSQL-front后,一点击localhost就报错 网上的例子都是说使用mysql_upgrade更新 但是我的是在phpstudy里的mysql,并没有mysq ...