Upload
lynton
View
79
Download
5
Embed Size (px)
DESCRIPTION
Excel VBA 程序设计. 第 2 章 VBA 基础知识. VBA 字符集. 大小英文字母: A~Z 、 a~z 。 不区分大小写 数字: 0~9 。 特殊符号: + - * / \ ^ = < > = & 等运算符及一些标点符号。 汉字. VBA 关键字. VBA 中的关键字很多,如:数组、编译命令、控制流、变换、数据类型、日前与时间、目录和文件、错误、金融、输入与输出、数学、其他、操作符、字符串处理、变量与常量等。 - PowerPoint PPT Presentation
Citation preview
Excel VBA 程序设计第 2 章 VBA 基础知识
2
大小英文字母: A~Z 、 a~z 。不区分大小写数字: 0~9 。特殊符号: + - * / \ ^ = <> < > <= >= & 等
运算符及一些标点符号。汉字
VBA 字符集
3
VBA 中的关键字很多,如:数组、编译命令、控制流、变换、数据类型、日前与时间、目录和文件、错误、金融、输入与输出、数学、其他、操作符、字符串处理、变量与常量等。
如:Const 、 As 、 Dim 、 Boolean 、 Integer 、 Date、 Double 、 Do 、、 Else 、 End 、 For 、 If 、 Is 、 Loop 、 Next 、 String 、 Sub 、 Then 、 While 、 With 、 Call
VBA 关键字
4
标识符的命名规则首字符必须为字母或汉字不能出现空格 . ! @ & $ # 等字符不能与关键字(及一些有特定含义的单词)同名不能超过 255 个字符
VBA 标识符
5
一行可以书写多条语句,各语句之间以冒号:分隔一条语句可以多行书写,以空格加下划线 _ 来续行单词之间以空格分隔尽量使用缩进格式,以增加程序的可读性养成使用注释的习惯
书写规范
6
直接常量数值常量,如: 120 、 2.65
字符串常量,如“ Excel” 、 “武大 120”
逻辑常量: True 、 False
日期常量,如: #9/28/2013#
符号常量
VBA 中的常量
7
直接常量符号常量
系统内部常量用户自定义常量
Const 标识符 As 数据类型 = 表达式【例】 Const myNumbe rAs Integer = 5
Const myFruit As String = " Apple"
VBA 中的常量
8
声明变量用 Dim 声明变量用 Private 声明变量用 Public 声明变量用 Static 声明变量
VBA 中的变量
Dim 标识符列表 [As 数据类型 ]
【例】 Dim Flag As Integer, StName As String
Dim StNum As String
9
声明变量隐式声明强制显式声明在声明字段加上语句: Option Explicit
VBA 中的变量
10
数据类型 关键字 字节数 备注
布尔型 Boolean 2 True 或 False
字节型 Byte 1 0~255
整型 Integer 2 -32768~32767
长整型 Long 4 -2147483648~-2147483647
货币型 Currency 8
单精度浮点型 Single 4 10-38 ~ 10+38
双精度浮点型 Double 8 10-308 ~ 10+308
小数型 Decimal 12
日期型 Date 8
字符串型 String
对象型 Object 4
变体型 Variant
用户自定义
VBA 的数据类型
11
VBA 的数据类型
数组类型声明固定大小的数组Dim 数组名 ( 数组上界 ) As 数据类型Dim 数组名 ( 第 1 维上界 , 第 2 维上界 ,…) As 数据类型声明动态数组Dim 数组名 ( ) As 数据类型ReDim [Preserve] 数组名 ( 下标 )
12
VBA 运算符与表达式
算术运算符比较运算符逻辑运算符字符串连接运算符
13
VBA 运算符与表达式
算术运算符
运算符号 优先级 作 用^ 1 指数运算- 2 取负运算
* 、 / 3 乘法、除法运算\ 4 取商运算
Mod 5 求余运算
+ 、 - 6 加法、减法运算
14
VBA 运算符与表达式
字符串连接运算符
运算符号 作用+ 连接两个操作数都是字符串的情况& 将两个操作数强制为字符串连接起来
15
VBA 运算符与表达式
比较运算符
比较运算符的优先级相同
运算符号 作用= 等于
<> 不等于< 小于> 大于
<= 小于等于>= 大于等于
16
VBA 运算符与表达式
逻辑运算符
运算符号 优先级 作用Not 1 取反运算And 2 逻辑与运算Or 3 逻辑或运算
Xor 4 逻辑异或运算Eqv 5 逻辑相等运算Imp 6 逻辑蕴涵运算
17
VBA 运算符与表达式
逻辑运算符
操作数A
操作数B
Not A A And B A Or B
F F T F F
F T T F T
T F F F T
T T F T T
18
VBA 运算符与表达式
比较运算符
运算符号 作用Is 比较两个对象的引用变量
Like 用于比较两个字符串
19
VBA 运算符与表达式
运算符的优先级在表达式中,当运算符不止一种时,要先处理算术运
算符,接着处理比较运算符,然后再处理逻辑运算符。所有比较运算符的优先顺序都相同;也就是说,要按它们出现的顺序从左到右进行处理。而算术运算符和逻辑运算符则必须按下列优先顺序进行处理。
字符连接运算符( & )在算术运算符之后,比较运算符之前
20
VBA 流程控制
顺序结构选择结构循环结构
21
VBA 流程控制
选择结构单分支
If 条件表达式 Then
语句组End If
表达式
语句
Y N
22
VBA 流程控制
选择结构双分支
If 条件表达式 Then
语句组 1
Else
语句组 2
End If
表达式N
语句组 2语句组 1
Y
23
VBA 流程控制
选择结构多分支
If 条件表达式 1 Then语句组 1
ElseIf 条件表达式 2 Then语句组 2
……Else
语句组 nEnd If
表达式 1
表达式 2
表达式 3
表达式 n-1
语句组 n语句组 n-1
...
语句组 3语句组 2语句组 1 ...
真 真 真 真
假
假
假
假
24
VBA 流程控制
选择结构多分支
Select Case 语句
25
VBA 流程控制
顺序结构选择结构循环结构
26
VBA 流程控制
循环结构Do…LoopFor…NextFor Each…Next
27
VBA 流程控制
With 语句在一个单一对象上执行一系列的语句。语法With object
[statements]
End With
28
VBA 过程
过程是模块中最小的单元,通常用于完成某个相对独立的功能。
Sub 过程没有任何返回值的一段程序。在 VBA 中响应事件的代
码块都是 Sub 过程。Call 语句用来条用过程。Function 过程(函数)用于建立用户自定义函数,可以有一个返回值。调用方法与 Excel 内部函数调用方法一致。
函数名 函数值类型 功能 示 例 返回值Abs(N) 与 N 相同 返回 N 的绝对值 Abs(-4*4) 16
Cos(N) Double 返回 N 的余弦值 Cos(0) 1
Exp(N) Double 返回 eN 的指数值 Exp(1) 2.71828182
Fix(N) Double 去掉小数点取整 Fix(5.78)Fix(-5.78)
5-5
Int(N) Double 返回不大于 N 的最大整数
Int(5.78)Int(-5.78)
5-6
常用内部函数
数学函数
函数名 函数值类型 功能 示 例 返回值Trim(S) String 去掉 S 左右两边
空格字符Trim(“ 人 ” ) “人”
LTrim(S) String 去掉 S 左边空格字符
LTrim(“ 人” ) “人”
RTrim(S) String 去掉 S 右边空格字符
RTrim(“人 ” ) “人”
Left(S,N) String 从 S 左边截取 N个字符
Left(“Hello”,2) “He”
Rigth(S,N)
String 从 S 右边截取 N个字符
Rigth(“Hello”,2) “lo”
Len(S) Integer 测试 S 的字符个数
Len(“ 中国 -China”)
8
常用内部函数
字符串函数
函数名 函数值类型 功能 示 例 返回值Mid(S,N1
[,N2])String 从 S 中第 N1 个
字符开始截取 N2个字符
Mid(“Computer”,4,3)
Mid(“Computer”,4)
“put” “puter”
Space(N) String 产生 N 个空格字符
“ 中” +Space(2)+”国”
“ 中 国”
Ucase(S) String 将 S 的小写字母改为大写
Ucase(“Visual”) “VISUAL”
Lcase(S) String 将 S 的大写字母改为小写
Lcase(“Visual”) “visual”
String(N,S)
String 重复输出 N 个 S字符
String(5,”*”) “*****”
常用内部函数
字符串函数
函数名 函数值类型 功能 示 例 返回值Asc(S) Integer 给出 S 首字符的
ASCII码值Asc(“ASDC”) 65
Chr(N) String 给出 ASCII码值是 N 的字符
Chr(97) “a”
Str(N) String 将数字 N转换为字符型
Str(-234) “-234”
Val(S) Double 将数字字符串转换为数字
Val(“-234”)Val(“12AB”)
-23412
CDate(s) Date 将 S转为日期型表达式
CDate(“3-15-2011”)
2011-3-15
常用内部函数
转换函数
函数名 函数值类型 功能 示 例 返回值Day(D|S) Integer 返回月中第几天
( 1~31 )Day(“2002-5-20”) 20
Month(D|S)
Integer 返回一年中第几个月( 1~12 )
Month (“2002-5-20”)
5
WeekDay(D|S)
Integer 返回是星期几(星期日为 1 ,依此
类推)
WeekDay(#2002-5-20#)
2
常用内部函数
日期函数
函数名 函数值类型 功能 示 例 返回值Now() Date 返回系统日期和时
间Now() 或 Now 03-4-16
10:48:22
Time() Date 返回系统时间 Time() 或 Time 10:48:22
Date() Date 返回系统日期 Date() 或 Date 03-4-16
MonthName(N)
String 返回 N 指的月份名
MonthName(Month(Date()))
“五月”
常用内部函数
日期函数
常用内部函数
Shell函数Shell函数可以调用 ( 执行 )磁盘上已保存的可执行文件(扩展名必须是 .COM 、 .EXE 、 .BAT )。
【格式】 Shell (“ 命令文件名” [ ,窗体模式 ])
【说明】 < 命令文件名 > 必须是全名,包括盘符、路径、主
文件名、扩展名[窗体模式 ] 是可选项,取不同的值,打开的窗体模
式不同。
36
The end