Excel高级应用VBA电子书.docx
- 文档编号:25169144
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:17
- 大小:28.11KB
Excel高级应用VBA电子书.docx
《Excel高级应用VBA电子书.docx》由会员分享,可在线阅读,更多相关《Excel高级应用VBA电子书.docx(17页珍藏版)》请在冰豆网上搜索。
Excel高级应用VBA电子书
Excel高级应用VBA电子书
第一节,标识符
一、标志符的定义
标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。
1,标志符的命名规则
1,由字母开头,后面接字母、数字或下划线组成,如X,Y_1,XT张三等。
2,字符长度有一定的规定。
3,不能与VBA的保留字同名,如public,private,dim,goto,next,
with,integer,single等。
第二节,VBA的数据类型VBA共有12种数据类型,具体见下表,此外用户还可以根据以下
类型用Type语句自定义数据类型。
数据类型类型标识符字节
字符串型String$字符长度(0-65400)字节型Byte1
布尔型Boolean2
整数型Integer%2
长整数型Long&4
单精度型Single!
4
双精度型Double#8
日期型Date8
货币型Currency@8
小数点型Decimal14
变体型Variant以上任意类型,可变对象型Object4
第三节变量与常量常量与变量
常量:
值固定的量。
变量:
值改变的量。
常量
常量包含以下几种常量:
数值常量
数值常量就是数~各种各样的常数。
如整型数、长整型数、定点数、浮点数等
字符串常量
用双引号括起来的即为字符串常量~只要加了双引号~即可视为字符串常量。
如“ABC”、“韶关学院”、“123”等
逻辑型常量
逻辑型常量只有两个值:
true,逻辑真,和false,逻辑假,。
日期型常量
前后加#号括起来的即为日期型常量。
如:
#2004-5-13#。
变量
变量的名:
通过变量的名来对应此变量、引用此变量。
变量名与变量应一一对应。
变量的命名原则
1(必须以字母、汉字开头的字母、汉字、数字、下划线组成的
字符串~不能在变量名中出现“。
”、空格或者!
、#、@、$、%、
&。
2(变量名最长为255个字符。
3(大小写字母同等对待~不能使用系统保留字。
4(在同一范围内变量名必须是唯一的。
5(变量名最好能“见名知义”~以提高程序的可读性。
变量的值:
变量,变量名,相当于一个容器~则变量的值就等价于容量中所装的东西。
理解:
变量的名与变量的值的关系
变量的赋值:
相当于给容器装东西。
赋值语句:
变量名=表达式
说明:
1.左边是变量名~右边为表达式~不能相反~表达式可是变量、常量、表达式、函数等。
2(“=”为赋值符号。
3.语句的功能为把右边表达式的值赋给左边的变量。
(相当于把右边的东西给装入左边的容器。
)
例:
x=100
y=“你好:
”
x=y+100-2
特殊的赋值语句:
x=x+1
意义:
相当于把X的当前值加上1后~再赋给X变量自己~x原
来的值被新值,加1后的新值,所覆盖。
其功能为实现X的值加1。
变量的使用
在使用变量时~必须遵循“先声明~后使用”的原则~变量的声明有显式声明、隐式声明。
显示声明格式:
dim变量名[as数据类型]
说明:
dim声明的变量为动态变量~运行该变量所在的过程时~变量产生。
过程结束时~变量消失~变量的值也消失。
例1:
DimaAsInteger
a=a+1
Printa
例2:
总结:
一定能区分常量与变量~建立起变量的概念~知道变量名与变量值的关系。
练习:
以下哪些是常量~属于哪种常量~哪些是变量,
姓名、“性别”、Y、true、72.50、#2004-05-14#、“123”
123、1.223d4、abc。
第四节VBA的运算符
定义:
运算符是代表VBA某种运算功能的符号。
1,赋值运算符:
“=”。
用来给变量或对象的属性赋值。
2,数学运算符:
^,指数f运算符,:
用来作指数运算。
-,负号运算,:
*,乘法运算,:
/,浮点除法运算~运算结果带小数,:
~如5/2=2.5\,整除运算~运算结果不带小数,,如5\2=2Mod,取余运算,:
如MMODN是求M整除N后的余数。
如5MOD
2=1。
常用来判断数的整除性~如MMODN,0~则M能被N整除。
+(加):
-,减,:
以上算术运算符运算的优先级逐级递减:
3,逻辑运算符
Not,逻辑非运算,:
And,逻辑与运算,:
or(逻辑或运算)
4,关系运算符
=,相等,、<>,不等于,、>,大于,、<,小于,、>=,大于等于,、
<=,小于等于,
关系运算符常用于表示比较~其结果为一个逻辑值。
如果关系表
达式成立~则其逻辑值为TRUE~否则为FALSE。
比较规则:
数值型数据:
按大小
字符型数据:
单个字符,空格<“A”…“Z”<“a”…“z”
字符串,先比较第一个的大小。
含多种运算符的表达式的综合运算:
当一个表达式出现多种运算符时~其运算顺序为:
先数学~后关系~再逻辑。
第五节VBA的内部函数函数的格式:
函数名,参数,
函数值
内部函数:
1、数学函数
注意:
Sin(X)、Cos(X)、Tan(X)、Atan(x)三角函数~单位为弧度。
Log(x)返回x的自然对数。
Exp(x)返回ex
Abs(x)返回绝对值
Int(number)、Fix(number)都返回参数的整数部分~区别:
Int将-8.4转换成-9~而Fix将-8.4转换成-8
Sgn(number)返回一个Variant(Integer)~指出参数的正负号Sqr(number)返回一个Double~指定参数的平方根Rnd,x,返回0-1之间的单精度数据~x为随机种子
1).三角函数:
Sin(X)、Cos(X)、Tan(X)、Atan(x)~其参数为弧
度数,弧度转换为角度的计算公式:
(x/180)*3.14159262).RND():
随机数函数~括号可省。
写成rnd。
其值的范围为,0,1,。
2、字符串函数
len():
其值为字符串的长度。
例:
Len("韶关学院")=4
Len("abcdef")=6
在VBA中采用统一字符编码~一个汉字算一个,一个英文字母也
算一个。
left():
left("韶关学院"~2)=“韶关”
right():
right("韶关学院",2)=“学院”
mid():
mid("韶关学院",2~2)=“关学”
ltrim():
去掉字符串左边多余的空格。
rtrim():
去掉字符串右边多余的空格。
trim():
去掉字符串左边和右边多余的空格。
解释:
字符串左边多余的空格:
“asdfghjhjk”
字符串右边多余的空格:
string():
String(9,"!
")
space(n):
生成由N个空格组成的字符串。
instr(begin,s1,s2):
功能:
在母串中查找子串出现的起始位置。
如果母串不包含
子串~则函数的值为0。
Begin表示在母串中哪个位置开始查找子串。
例:
instr(3,“韶关学院”~“学院”)3、转换函数
str():
数值转换为字符str(123)=“123”
val()字符转换为数值val(“123”)=123
asc():
求已知字符的ASC码
chr():
已知ASC码~求其所对应的字符。
oct(x):
十进制转换为八进制。
hex(x):
十进制转换为十六进制。
lcase():
转换为小写字符
ucase():
转换为大写字符
ccur():
类型转换
4、日期函数
time()
timer()
now()
date()
year()
month()
weekday()
day()
hour()
minute()
second()
在立即窗口中输入函数~求函数的值
函数名,,
5、输入输出函数
1(输入对话框函数inputbox()
格式:
变量名=inputbox(提示信息~标题~缺少值~x,y)功能:
在屏幕的x,y位置打开一个输入对话框~对话框的提示信息为括号里的提示信息~对话框的标题为括号中的标题信息。
当输入值时~输入的值就会保存在左边的变量中。
例:
aa=InputBox("请输入数据","输入数据"~100,123,456)运行界面如下:
当输入200时~则200就保存在aa变量中~如果没输入~则以缺省值100保存在aa变量中。
2(输出消息对话框函数msgbox()
变量名=msgbox(提示~按钮~标题)
功能:
显示一个消息对话框~提示给用户信息~其中可有若干个选择按钮和图标。
注意:
“按钮”设置值及其意义。
5(测试函数,测试函数的返回结果为True或者False,。
IsNumeric(x):
测试X是否为数字。
IsDate(x):
测试X是否是日期。
IsEmpty,x,:
测试X是否为Empty,空值,。
IsArray(x):
测试变量是否为一个数组。
第六节VBA中对象属性方法一、概念
类:
类是对象的抽象,对象是类的实例化、具体化。
对象,对象是类的实例化、具体化。
在VBA中,对象也称为控件,出现在集成开发环境中的工具箱中。
VB中的控件
控件的命名和控件值
在VB中,每一个控件都有一个唯一确定的名字,通过名字来对应此控件。
命名的约定,
控件命名原则:
通过控件的名字知道控件的类型、控件的的作用。
名字组成,类型符表示控件含义的字符
命名时应遵守的规则,
描述一个对象的三要素,“属性”、“方法”、“事件”。
属性,通过控件的属性来定义控件的外观。
对象属性的描述:
对象名.属性名
对象属性的赋值:
1.在设计状态,通过属性窗口进行属性值的设定2.在运行状态,通过代码动态地改变对象的属性值
格式:
对象名.属性名=值
方法,通过控件的方法来定义控件的行为,是一段已经确定好的代码的
集合。
方法的调用,对象名.方法名[参数]
例:
debug.print“您好,欢迎光临!
”
事件,事件来定义控件对外部刺激所作的反应。
常见的事件:
click(鼠标单击)、dblclick(鼠标双击)事件的触发机制:
用户触发,系统触发。
事件过程的一般格式,
sub对象名_事件名()
事件响应程序
endsub
说明,
“对象名”是指该对象的name属性的值。
“事件名”是指VAB预先定义好的赋予该对象的事件。
理解事件驱动的含义,
P14页(倒数第四行起)
VBA事件程序的执行步骤,
1,等待事件的发生,
2,事件发生时,执行其对应的事件过程。
3,重复步骤1
如此周而复始地执行,直到程序结束。
结构化程序设计的三种基本结构:
顺序结构、选择结构、循环结构顺序结构:
执行流程:
按语句的先后顺序依次执行。
注意:
在顺序结构中~有些语句有严格的先后顺序~编写代码时~须严格遵循它们的先后顺序,有些语句先后顺序无关紧要~则编写代码时~其顺序可不作严格要求。
选择结构:
执行流程:
执行到选择结构时~根据选择结构的条件决定程序的执行流程。
选择结构的流程图描述:
选择结构的案例讲述。
1、编写程序~交换变量A、B的值。
拓展:
交换EXCEL工作表中
两个单元格的值,
2、输入三角的三边~用海仑公式求三角形的面积。
选择结构所对应的语句:
1(单分支选择语句,If语句,单条件判断
格式1:
行IF语句
语句:
if条件then<语句块1>else<语句块2>
注意:
此格式中~语句均须在一行书写。
执行流程:
格式2:
if条件then
语句块1
语句块2
endif
注意:
书写格式
执行流程
格式3:
if条件1then
语句块1
elseif条件2
语句块2
elseif条件3
语句块3
……
……
Endif
注意:
书写格式,多条件判断。
执行流程例1:
比较A、B两个变量值的大小。
并输出较大的变量名及其值。
算法(文字描述):
1(定义A、B两变量。
2(输入A、B的值
3(比较A、B值的大小
4(如A>=B~则输出“A较大”和A的值~程序结束。
5(如A
程序代码:
dimaassingle
dimbassingle
a=inputbox(“请输入A:
”)
b=inputbox(“请输入B”)
Ifa>=bthen
Debug.print“A较大:
”,a
else
debug.print“B较大:
”,b
endif
或用行IF语句~则其格式为
Ifa>=bthendebug.print“A较大:
”,aelsedebug.print“B较大:
”,b
选择结构的嵌套
概念:
在一个IF结构中出现另一个IF结构,就叫做选择结构的嵌套格式:
if条件then
if条件then
语句
else
语句
endif
else
if条件then
语句
else
语句
endif
endif
注意:
if、Else、Endif总是与离它最近的配对。
例2:
比较A、B、C三个变量值的大小。
并输出较大的变量名及其值。
算法(文字描述):
1(定义A、B、C三个变量。
2(输入A、B、C的值。
3(先比较AB的大小
4(如果A>=B成立~则比较AC~如A>=C,则A大~否则C大。
5(如果A>=B不成立~则比较BC~如B>=C,则B大~否则C大。
6(程序结束。
程序代码:
DimaAsSingle,bAsSingle,cAsSingle
a=InputBox("请输入A的值:
")
b=InputBox("请输入B的值:
")
c=InputBox("请输入C的值:
")
Ifa>=bThen
Ifa>=cThen
Debug.Print"A较大!
",a
Else
Debug.Print"C较大!
",c
EndIf
Else
Ifb>=cThen
Debug.Print"B较大!
",b
Else
Debug.Print"C较大!
",c
EndIf
EndIf
例3:
输入三角形的三边~判断其值的有效性~并求出有效三角形的面
积。
文字算法:
(学生自己写出)
流程图:
学生自己绘制,
程序代码:
DimaAsSingle,bAsSingle,cAsSingle,lAsSingle,sAsSingle
a=InputBox("请输入三角形A边的值:
")b=InputBox("请输入三角形B边的值:
")c=InputBox("请输入三角形C边的值:
")Ifa+b>cAnda+c>bAndb+c>aThen
l=(a+b+c)/2
s=Sqr(l*(l-a)*(l-b)*(l-c))
msgbox"所求的三角形面积:
"&sElse
MsgBox("数据输入出错,三边不能构成三角形!
")EndIf
多条件判断一,用IF语句,
if条件1then
语句块1
elseif条件2
语句块2
elseif条件3
语句块3
……
……
Endif
注意:
1:
格式。
2:
执行流程
案例:
输入某学生的成绩~判断其等级。
其等级标准为:
90,100:
“优
秀”,80,89:
“良好”,70,79:
“中等”,60,69:
“及格”~60分以下:
“不及格”
算法:
略,
代码:
Subjudge()
DimscoreAsSingleScore=inputbox(“请输入成绩:
”)
Ifscore<60Then
Msgbox"注意:
你的成绩为不及格:
"
ElseIfscore>60Andscore<70Then
Msgbox"你的成绩为及格,需努力:
"
ElseIfscore>70Andscore<80Then
Msgbox"你的成绩为中等,再努力:
"
ElseIfscore>80Andscore<90Then
Msgbox"你的成绩为良好,争取优秀:
"
ElseIfscore>90Andscore<100Then
Msgbox"你的成绩为优秀,祝贺你:
"
Else
Msgbox"你的输入有问题:
"
EndIf
EndSub
多条件判断二
情况选择语句~也用于多分支选择格式:
selectcase表达式
case表达式1
语句块1
case表达式2
语句块2
……
caseelse
语句块N
EndSelect注意:
1:
格式
2:
执行流程
3:
测试表达式的几种形式
a.表达式,表达式
b.表达式to表达式
c.is关系运算表达式~使用的运算符包括:
<、<=、>、>=、<>、=例:
case1to10
测试变量的值落在1到10的范围内~则匹配~符合条件。
case1to5,12
测试变量的值落在1到5的范围内~或者12~则匹配。
case“Xie”,“Li”toWang”
测试变量的值落为“Xie”~或者落在“Li”到“Wang”的范围内~则匹配。
例:
用select语句改写多条件的if语句.
2案例:
编写程序~要求:
输入二元一次方程AX+BX+C=0的系数A、B、C后~判断其解的情况并求其解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 高级 应用 VBA 电子书