(一)什么是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. 0029 定位:position(相对、绝对、固定、绝对定位盒子居中、z-index、绝对定位改变display属性)

    目标 理解 能说出为什么要用定位 能说出定位的4种分类 能说出四种定位的各自特点 能说出我们为什么常用子绝父相布局 应用 能写出淘宝轮播图布局 1. CSS 布局的三种机制 网页布局的核心 -- 就是 ...

  2. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  3. Java提供的JDBC标准- 六大步骤

    JDBC 1.//加载驱动 class.forname 2.//创建连接connection 3.//创建 管道流 statement或  preparestatement预处理4.//执行sql语句 ...

  4. cocos2dx Quaternion 四元数(1/2)

    这篇文章只是我学完四元数之后的一些理解,其实是对别人理解的理解,有些地方我理解但是没有写下来,如果真的想深入的学习四元数,建议从学习复数开始. 这个知识点需要几何想象的天赋和学习的耐心,缺一不可,慢慢 ...

  5. 【题解】P4091 [HEOI2016/TJOI2016]求和

    [题解]P4091 [HEOI2016/TJOI2016]求和 [P4091 HEOI2016/TJOI2016]求和 可以知道\(i,j\)从\(0\)开始是可以的,因为这个时候等于\(0\).这种 ...

  6. Linux三剑客之sed的基本用法介绍

    [介绍] sed是一款强大的非交互式的文本编辑器,可以对文件文本进行增删改查的相关操作,本文主要是讲解以下sed的基本用法. [常用选项] -e 下一个参数为一个sed指令,一般只会用于同一行有多个s ...

  7. 机器学习之路--Matplotlib

    1.绘制折线图 在pandas里面有一种数据类型为datatime ,可以将不规范的日期改为:xxxx-xx-xx import pandas as pd import numpy as np a = ...

  8. CSRF 详解:攻击,防御,Spring Security应用等

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. CSRF(Cross-site request forgery跨站请求伪造,也被称成为"one click att ...

  9. 不懂Neo4j?没关系,先学增删改查

    从上篇文章中我们了解到了什么是Neo4j.为什么要用Neo4j.什么场景使用 以及怎么安装,如果您还不想熟悉,点击此处,传送过去哦~ 既然Neo4j是一个图数据库,那么毫无疑问,增删改查是必不可少的, ...

  10. mysql oracle sql获取树 父级 子级 及自己

    select * from ( select t.*,d.TABLE_NAME,d.QUERY_SQL,d.data_control_col,d.id table_id,d.where_sql fro ...