officeExcelVBA入门教程.docx
- 文档编号:2475035
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:50
- 大小:55.58KB
officeExcelVBA入门教程.docx
《officeExcelVBA入门教程.docx》由会员分享,可在线阅读,更多相关《officeExcelVBA入门教程.docx(50页珍藏版)》请在冰豆网上搜索。
officeExcelVBA入门教程
office_Excel_VBA_入门教程
VBA,他有什么能耐?
我们为什么要学习他?
是不是真的“除了不会生孩子外,什么都会”?
不是的,什么都不会是万能的,“寸有所长,尺有所短”。
个人常讲的:
从A处到B处,步行、乘汽车、乘火车、乘飞机一个比一个先进、一个比一个优越,当A是成都B是北京时肯定如此,然而A和B是一个家属院的两幢楼时大约就不是这样了吧?
哪么我们在什么时候使用他?
个人认为有以下情况时我们可以考虑看能否用VBA解决:
当我们仅仅在电脑上从事机械的、重复的简单的体力劳动的时候;
当我们在表格中写入的函数太多而致使改动一个数据,去泡了一杯茶过来电脑都还没有运算完的时候;
当我们需要在不同的文件间进行数据交换的时候;
当我们需要进行实时监控的时候
……
总之就是我们用电脑解决一些有规律的,我们用函数、技巧解决起来却很麻烦,或很耗时,或不太好解决甚至不能解决的问题,就可以考虑用VBA能否方便快捷地完成。
那么VBA难吗?
看到的VBA代码都是些鸟文,俺不懂鸟文,能学会吗?
VBA难,担不会比E中的函数难,能学会E中的函数的人都应该能学会V,并且绝对比用E中的数组公式简单。
懂不懂鸟文与学得会学不会V关系不大,不会有多少人E中的每个函数都能默写出来吧?
对E中的函数我是仅仅记住了常用的那几个,其余的要用到时再到帮助中去找。
V同样如此,有时整段整段的代码都来自帮助,稍改下就成了自己的了
在进入下面的学习以前,请暂时忘掉你原有的excel函数、技巧等等吧。
此贴是为完全不懂VBA、完全不懂程序设计的人而写的,否则还是请绕道,他会浪费你很多时间和精力。
学VBA的要点是动手动脑,然后是再动手动脑,最后还是动手动脑。
这里的动手,是指录入代码(哪怕是照抄别人的,都得自己手录入,而绝不能复制粘贴)、改代码(阅读理解别人代码的基础上进行功能改、扩等的改写)、写代码;动脑除了常规意义上的思考等以外,此处还包括阅读理解程序,阅读的时候大脑模拟电脑执行过程,要知道每到一处的时候各变量、参数的值是什么、处于何种状态。
------------------------------分-------界-------线----------------------------
VBA程序设计程序设计的基础知识:
一、计算机解决问题的步骤
计算机解决问题的步骤:
一般来说,在运用计算机程序解决一个具体的实际问题时,大致经过以下几个步骤:
首先建模:
分析问题,从具体问题中找出一个适当的数学模型
其次确定算法:
然后设计一个解决数学模型的算法,
最后编制程序并进行测试调整,直到得出最终答案。
由于每一步不见得都能得到正确的方向,所以在每一步都可能返回到前一步甚至前几步。
图形如下:
可见建立的模型不同(整得这么神秘,什么建模了、算法了,其实就我们对问题的想法,完成问题的具体步骤),最终编制出来的程序也就不同。
我们先来看一个经典的问(鸡兔同笼问题):
有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
问笼中各有几只鸡和兔?
分析一:
设兔子的数量为X,则鸡的数量为35-X,那么脚的数目就为4X+2(35-X)。
我们就可以让X从0开始逐步增加,只要使4X+2(35-X)=94,就得到了兔子和鸡的数目。
这就是所谓的建模。
确定算法:
①输入头的数目a,脚的数目b
②x=0
③如果4X+2(a-X)不等于b,则x增加1,重复③;否则进入④
④输出兔子的数量X,则鸡的数量35-X
⑤结束
Subjttl()
DimaAsInteger,bAsInteger
DimxAsInteger
a=InputBox("a=","请输入头的数目")
b=InputBox("b=","请输入脚的数目")
x=0
DoUntil4*x+2*(a-x)=b
x=x+1
Loop
MsgBox"有兔"&x&"只,有鸡"&35-x&"只"
EndSub
分析二(换一个思路,另建个模):
设兔子的数量为X,鸡的数量为Y,头的数目为a,脚的数目为b,则有X+Y=a,4X+2Y=b,解方程组可得X=b/2-a,Y=2a-b/2
确定算法:
①输入a和b的值
②计算x=b/2-a
③计算y=2a-b/2
④输出x、y的值
⑤结束
编制程序:
Subjttl()
DimaAsInteger,bAsInteger
dimxAsInteger,yAsInteger
a=InputBox("a=","请输入头的数目")
b=InputBox("b=","请输入脚的数目")
x=b/2-a
y=2*a-b/2
MsgBox"有兔"&x&"只,有鸡"&y&"只"
EndSub
以上的程序可以暂时不必搞清楚(后面我们还要讲此例),只是体现出看待问题的角度不同就有不同的算法,相应的程序也是不同的。
同时也反应出程序实际就是一组机器操作的指令或语句的序列,是对算法(解决问题的步骤)的一种描述而已。
因此编程就是将算法(解决问题的步骤)翻译成对应的代码,只是注意算法的每一个步骤对应着一个或多个语句,每个语句对应着一个或多个操作。
二、VBA语言及开发环境
(一)vba语言概述
由前示例可看出,VBA程序由一条条的语句构成,这些语句大体上可以分为(如下图):
①开始/结束:
必须有的,表明程序的开始与结束。
Sub是必须的(当然还有function等等,以后遇到再说)。
Sub后面是我们给程序的命的名称(此处为jttl,也可以命名为其它,但必须要符合命名规则,命名规则后面讲)。
EndSub是自动产生的。
②变量定义:
Dim变量名as数据类型,有多个变量要定义时用,分开。
一般都具备,但还是要看具体情况而定。
③数据输入/数据输出:
输入是给程序某些信息以供运行所需,可以从键盘输入,也可以从文件、扫描仪、鼠标等等一切可以输入数据的途径,它不是必须的,这要看具体情况而定;输出是将程序运行的结果反馈给我们,它是广义的:
向显示屏上输出提示信息、向音箱输出信息、向打印机输出信息、向文件输出信息等等,一般来说每个程序都应具备。
④数据处理:
我们希望计算机对数据进行的运算、处理等等。
-------------------------------------------------------------------------
1、vba的基本数据类型
描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合统称为数据。
数据既可以是计算机程序处理的对象,也可以是计算机程序处理的结果。
为了更好地处理各种数据,vba定义了多种数据类型(书上是这么讲的,大家可以牵强地参照单元格数据类型中的数值、日期、时间、文本等来类似理解),以下介绍几种常用的基本数据类型:
整数:
Byte存储为单精度型、无符号整型、8位(1个字节)的数值形式,范围在0至255之间。
Byte数据类型在存储二进制数据时很有用
integer存储为16位(2个字节)的数值形式,其范围为-32768至32767的所有整数,类型声明字符是百分比符号(%)。
即dimIasinteger与dimi%等效。
下同
long存储为32位(4个字节)有符号的数值形式,其范围从-2,147,483,648到2,147,483,647的所有整数。
类型声明字符为和号(&)。
小数:
single存储为IEEE32位(4个字节)浮点数值的形式,它的范围在负数的时候是从-3.402823E38到-1.401298E-45,而在正数的时候是从1.401298E-45到3.402823E38。
但它只有七位有效数字。
Single的类型声明字符为感叹号(!
)。
double存储为IEEE64位(8个字节)浮点数值的形式,它能表示绝对值小于10308的数。
有十五位有效数字。
Double的类型声明字符是数字符号(#)。
字符串:
string有两种:
变长(最多可包含大约20亿(2^31)个字符)与定长(可包含1到大约64K(2^16)个字符)。
String之字符码的范围是0到255。
字符集的前128个字符(0到127)对应于标准的U.S.键盘上的字符与符号。
这前128个字符与ASCII字符集中所定义的相同。
后128个字符(128到255)则代表特殊字符,例如国际字符,重音符号,货币符号及分数。
String的类型声明字符为美元号($)。
逻辑型(布尔型)Boolean存储为16位(2个字节)的数值形式,但只能是True或是False。
Boolean变量的值显示为True或False(在使用Print的时候),或者#TRUE#或#FALSE#(在使用Write#的时候)。
使用关键字True与False可将Boolean变量赋值为这两个状态中的一个。
当转换其他的数值类型为Boolean值时,0会转成False,而其他的值则变成True。
当转换Boolean值为其他的数据类型时,False成为0,而True成为-1。
Variant:
是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据(似乎是万能数据类型,从某种程度上可看作类似于单元格格式中的常规)。
Variant
也可以包含Empty、Error、Nothing及Null等特殊值。
其它数据类型date、Currency等等可参考帮助文件。
-------------------------------------------------------------------------
2、vba的字符集与关键字
VBA中的字符集是由英语字母、数字和专用字符等组成,几乎包含了ASCII码字符集中的所有字符:
二十六个英语字母的大小写、0至9的数字,专用字符是指在VBA中具有特殊含义的字符,如算术运算符(加+、减-、乘*、除/、整除\、乘方^)、关系运算符(>、<、>=、<=、<>、=)及各种标点符号。
关键字是VBA系统规定了一些固定的并且具有特殊含义的字符串。
用户不可以改变他们,在命名宏、变量时也不可用这些关键字,如sub、dim、or等等。
特征是在VBE窗口中自动将首字母变成大写、其余字母大部份是小写的就是。
-----------------------------------------------
3、常量与变量及其命名规则:
常量:
声明定义时确定其值,程序在执行不始终不能更改的量,通常用于保存固定的数据。
声明方式为:
const常量名=表达式[,常量名=表达式]……
例:
constpi=3.14
即声明了一个值为3.14的常量pi
变量:
程序在处理数据时,对于输入数据、参加运算的数据、运算过程中的临时性数据、运行结果等,通常需要把它们暂时存储在计算机的内存单元中,变量就是用于命名这些内存单元的。
其声明方式有dim、static、public等,以下介绍dim,其余的可参考帮助。
声明方式:
dim变量名as数据类型[,变量名as数据类型]……
例:
dimiasinteger或dimi%
声明一个取值范围在-32768至32767的整数变量i
dimnaslong,sasstring或dimn&,s$
声明一个取值范围在-2,147,483,648到2,147,483,647的整数变量n和一个字符串变量s
注意:
①当仅用dim变量名,即
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- officeExcelVBA 入门教程