Excel宏与VBA

程序设计实验指导1

实验1 Excel宏与VBA

语法基础

一、实验目的

1.熟练掌握录制宏、执行宏、加载宏的方法;

2.熟练使用Excel VBA编辑环境,掌握VBA的编辑工具VBE的结构和使用;

3.熟练掌握VBA的基础语法和语句,包括对象、属性和方法,运算符的使用,常用语句和变量的使用。

二、知识要点

1.宏

宏是被存储在Visual Basic模块中的一系列命令和函数。在需要执行宏时,宏可以立刻被执行,简单地说,宏就是一组动作的组合。宏是Excel能够执行的一系列VBA语句,它是一个指令集合,可以使

Excel自动完成用户指定的各项动作组合,而且宏的录制和使用方法相对也比较简单。录制宏命令时,Excel会自动记录并存储用户所执行的一系列菜单命令信息;运行宏命令时,Excel会自动将已录制的命令组

合重复执行一次或者回放,从而实现重复操作的自动化。也就是说,宏命令本身就是一种VBA应用程序,它是存储在VBA模块中的一系列命令和函数的集合。当执行宏命令所对应的任务组合时,

Excel会自动启动该VBA程序模块中的运行程序。

在Excel中,宏有以下两种制作方法:

录制宏:通过录制的方法把在Excel中的操作过程以代码的方式记录并保存下来,即宏的代码可以用录制的方法自动产生;

编写宏:在VBE中直接手工输入操作过程的代码。

(1)录制宏:录制宏是用录制的方法形成自动执行的宏,除了直接录制外,也可以用图形或按钮启动录制;

(2) 执行宏:通过宏对话框执行宏、通过图形执行宏、通过窗体按钮执行宏、添加菜单或工具栏命令执行宏;

(3)加载宏:加载宏来源主要有Excel自带的加载宏、其他来源提供的加载宏、录制宏制作的加载宏。

2.Excel VBA编辑环境

VBA是Micriosoft Office集成办公软件的内置编程语言,又分为Excel VBA语言、Word VBA语言以及PowerPoint VBA语言,是新一代标准宏语言。它是基于VB发展起来的,VBA继承了VB很大一部分编程方法。

VB中的语法结构、变量声明以及函数的使用等内容,在VBA语言中同样可以正常使用。VB是面向对象编程,Excel VBA则偏重于面向Excel 对象,如工作簿、工作表以及单元格等,即Excel VBA是通过用代码编写的

命令和过程来操作工作表或单元格等对象,进而在Excel中完成自动化操作的设置。 Office提供了VBA开发界面,称为 VBE窗口界面,在该窗口中用户可以先实现应用程序的编写。VBE不能单独打开,必须依附于它所支持的应用程序。

通过VBE编写的VBA代码,也保存于VBA代码所服务的Excel文件中。 Excel宏与VBA程序设计实验指导书

2 3.Excel VBA语法基础及代码结构

(1)注释、连写和断行

注释:可以通过两种方法实现,即使用Rem语句、用单引号(’);

连写:在一行中写几个语句,用“:”来分开不同语句

断行:一个语句分开写成几行,用空白加下划线“_”作为断行标记。

(2)变量和常量

变量用于临时保存数据。程序运行时,变量的值可以改变。变量在使用前,最好进行声明,也就是定义变量的数据类型,这样可以提高程序的可读性和节省存储空间。

通常使用Dim语句来声明变量。声明语句可以放到过程中,该变量在过程内有效。声明语句若放到模块顶部,则变量在模块中有效。

变量用来存储动态信息,静态信息可以用常量表示。要声明常量并设置常量的值,需要使用Const语句。常量声明后,不能对它赋予新的值。

(3)运算符

算术运算符:+、-、*、/;

比较运算符:<、<=、>、>=;

逻辑运算符:And、Or、 Not;

连接运算符:&、+

常用语句With

语句:设置一个对象的多个属性;

判断语句:With 对象

. 属性1 = 性值

.  属性2 = 属性值

„„

.属性 N = 属性值

End With

IF 判断Then   代码1

Else 代码 2

End IF

IF 判断1 Then 代码1

Elseif 判断2 Then 代码2

Elseif 判断3 Then 代码3 „„

Else  代码 N

End IF

Select  Case 判断的对象

Case (Is) 条件1 代码1

Case (Is) 条件2 代码2

Case (Is) 条件3 代码3 „„

Case Else  代码 N

End Select

Excel宏与VBA程序设计实验指导书

3循环语句

实验内容及步骤

发生错误语句转移忽略出错的语句

(5)过程程序

过程程序根据是否有返回值分为子过程程序(不返回值)和函数过程程序(可

以返回值)。子过程程序结构:

(6)事件程序

(7)对象、属性和方法

对象:

Excel

工作簿、工作表、单元格、图表、窗体、按钮等;

属性:对象固定的特征,设置对象属性结构为“对象.属性=属性值”;方法:作用于对象上的操作,用方法操作对象语法为:

“对象.方法 自变量”。

三、

实验内容及步骤

1.录制宏的实例应用

(1)自动完成报表累计

在图

1-1

所示的费用表中,要求设置下列

3个按钮:

“累加”按钮:单击该按钮进行本月累计运算,并在

F1单元格中显示“本月数据已累加”。“累加恢复”按钮:单击该按钮自动恢复累加前的数据,并在

F1单元格中显示“已恢复到累加前数据”。“清空本月数据”按钮:单击该按钮清空B列中的本月数据,并在F1单元格中显示“本月数据已清除”。

VB execl文件后台代码,基础语法的更多相关文章

  1. Java解析导入Excel文件后台代码实现

    使用MultipartFile上传Excel文件后端代码实现:(springmvc下的spring-webmvc (MultipartFile )上传) 由于POST一个包含文件上传的Form会以mu ...

  2. excel文件后台代码

    很多情况下,我们都需要从Excel中获取数据来创建Word报表文档.首先在Excel中分析数据,然后将分析结果导出到Word文档中发布.技术实现方式:1.创建Word模板,用来作为数据分析结果发布平台 ...

  3. asp.net 下载任意格式文件 上传文件后台代码

    思路:将文件转化为流,输出到页面上的iframe中去 //下载附件逻辑 object DownLoad(NameValueCollection nv) { int attachId = nv[&quo ...

  4. C#基础语法,快速上収C#

    C#代码基础语法 对新手的帮助很大,可以尝试多看看然后在敲敲 // 单行注释以 // 开始 /* 多行注释是这样的 */ /// <summary> /// XML文档注释 /// < ...

  5. wpf 分别用 xaml 和后台代码实现 色彩渐变

    xaml 方法: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.micros ...

  6. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  7. Verilog HDL基础语法讲解之模块代码基本结构

    Verilog HDL基础语法讲解之模块代码基本结构   本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的 ...

  8. uploadify上传文件(2)--基础语法

    隔了好久,因为最近搬家,离开从小生活的城市,来到杭州.找工作.找房子等诸多事宜耽误了这篇文章许久.今天难得闲暇在旅馆中完成uploadify上传文件系列的第二篇--uploadify使用的基础语法. ...

  9. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

随机推荐

  1. React-Native个人信息界面

    最近在做一个小练习项目,用户登陆后需要跳转到用户登录信息界面,加班半个小时终于将界面的布局搞定.接触Rect-Native也有一段时间了,以前没有做过ios,只做过android,就布局和开发效率上来 ...

  2. Method to fix "Naming information cannot be located because the target principal name is incorrect." for AD replication failure

    Assume Failure DC FP01 and Working DC DC01 1. Stop the Key Distribution Center (KDC) service on FP01 ...

  3. QT多重继承的时候,要把QObject放在最前面,否则报错——C++认为人性本恶,默认都是私有的,这点和Delphi的世界观不一样

    在买来的控件(没有源码)的基础上,想加入QObject的一些特性,不得不多继承: class MyProgress : public CProgress, public QObject 但总是报错: ...

  4. Qt中如何 编写插件 加载插件 卸载插件

    Qt中如何 编写插件 加载插件 卸载插件是本文要介绍的内容.Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoade ...

  5. Make a travel blog by Blogabond the theme of wordpress

    We can record our place which we have ever went.If you want to know any more you can visit :http://w ...

  6. (续)线性表之双向链表(C语言实现)

    在前文实现单向链表的基本操作下,本文实现双向链表的基本操作. 双向链表与单链表差异,是双向链表结点中有前向指针和后向指针.所以在插入和删除新结点元素时候不见要考虑后向指针还要考虑前向指针. 以下是双向 ...

  7. 浅谈C语言中的强符号、弱符号、强引用和弱引用

    摘自http://www.jb51.net/article/56924.htm 浅谈C语言中的强符号.弱符号.强引用和弱引用 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014- ...

  8. hdu 1279 验证角谷猜想(简单的模拟)

    Problem Description 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数, ...

  9. poj 3026 (最小生成树)

    题意:起点开始有超过100个人,总共不会超过100个外星人,问把所有的外星人都搜出来花的最小时间.一条路径上的时间跟人数是无关的,只跟路径长度有关. 思路:刚开始人都在起点,当派一定人数去最近的外星人 ...

  10. NSDictionary所有API的学习。

    <欢迎大家增加iOS开发学习交流群:QQ529560119> @property (readonly)NSUInteger count; //1.利用指定的key寻找相应的value - ...