欢迎光临散文网 会员登陆 & 注册

VBA学习-数组、过程与函数

2019-04-16 18:43 作者:凌霄百科  | 我要投稿

数组声明

一维数组

Dim/Static/Private/Public<数组名>([索引下界]To]索引上界)As<数据类型>

二维数组

Dim/Static/Private/Public<数组名>(行数,列数)As<数据类型>

设置默认下界值

Option Base 0|1

查看数组的索引上界和下界值

下界值:LBound(数组名[,返回哪个维数的下界值])

上界值:UBound(数组名[,返回哪个维数的上界值])

数组赋值

使用循环语句初始化数组

FOR<循环变量>=索引下界To索引上界

<数组元素>=<初始值>

Next循环变量

Array()函数初始化数组

Array(以英文逗号隔开的数据序列表)

使用数组值初始化数组

动态数组

声明动态数组

Dim<数组名>()As<数据类型>

ReDim函数隐式数组声明

ReDim<数组名>([索引下界]To索引上界)

每次使用ReDim后数组中的值会丢失,若要保留原有值,可使用ReDim Preserve语句扩充数组

数组清除和重定义

Erase 数组变量

检测变量是否为数组

IsArray(变量名)

For Each数组的控件变量必须为变体

不能直接给整个数组赋值

数组中不能放置监视断点

过程创建

Sub过程

在调用子过程时,将采用按参数值(ByVal)和按地址传递(ByRef)两种方式

定义Sub过程

利用录制宏来创建

使用代码创建

[Private|Public|Friend][Static]Sub 过程名 [(要传递的参数变量列表)]

[过程语句]

[Exit Sub]

[过程语句]

End Sub

参数变量列表格式:

[Option][ByVal|ByRef][ParamArray]参数名[()][As type][=defaultvalue]

Function 函数

参数传递可采用按参数值(ByVal)和按地址传递(ByRef)两种方式

[Private|Public|Friend][Static]Function 函数名 [(要传递的参数变量列表)]

[函数语句]

[函数名=表达式]

[Exit Function]

[函数语句]

End Function

过程调用

Call语句调用子过程

Call 过程名[参数列表]

直接调用

过程名 参数列表

调用自定义函数

变量=函数名(参数列表)

过程调试

控制过程执行工具

VBE开发环境:运行菜单、调试菜单

运行:运行子过程/用户窗体

中断:Ctrl+Break

重新

控制程序执行间隔的功能

逐语句【F8】

逐过程【Shift+F8】

跳出【Ctrl+Shift+F8】

运行到光标处【Ctrl+F8】

监视

添加监视

编辑监视【Ctrl+W】

快速监视【Shift+F9】

切换断点【F9】

清除所有断点【Ctrl+Shift+F9】

调试方法

程序侵入式调试

Print过程 以Debug.Print输入立即窗口

Assert过程 以Debug.Asset 条件表达式(表达式为假时弹出警告)

变量监视

调试技巧

查看帮助文档

每个程序位置都要检查

怀疑代码错误

不做无根据判断

良好的编码风格

Property属性过程和Event事件过程

是VBA在对象功能上添加的连个过程

函数和子过程的区别

函数具有一个特定的返回值

子过程没有返回值

子过程用Sub关键字声明,函数用Function 关键字声明

常用字符串函数

Len(字符串/变量名)   返回字符数

LenB(字符串/变量名)   返回字节数

Left(字符串,长度)   返回指定字符串中从左边算起指定数量的字符

Mid(字符串,开始,[长度])   返回指定字符串从指定位置向右指定个数字符

Right(字符串,长度)   返回指定字符串中从右边算起指定数量的字符

String(返回字符长度,字符码或字符串表达式)   生成多个重复字符

Replace(字符串表达式要替换的子字符串,要搜索的子字符串,用来替换的子字符串[,开始搜索位置[,替换次数[,判别比较方式]]])   替换字符串

StrConv(字符串表达式,转换类型,LCID)   转换字符串类型

LCase(字符串)   转换成小写

UCase(字符串)   转换成大写

StrComp(字符串1,字符串2[,比较方式])   比较两个字符串是否相等

日期函数

Now()   返回计算机系统的当前日期和时间

Date()   返回计算机系统的当前日期

Time()   返回计算机系统的当前时间

Year(日期参数)、Month(日期参数)、Day(日期参数)   返回日期参数的年、月、日

Hour(时间参数)、Minute(时间参数)、Second(时间参数)   返回时间参数的小时、分钟、秒数

Weekday(日期,[指定星期类型默认以周日为第一天])   返回日期参数的星期值

WeekdayName(日期,星期名称是否被缩写Boolean值,指定星期类型默认以周日为第一天)

日期计算

DateAdd(字符串表达式,时间间隔,日期字符串或字符串表达式)   一段时间后的日期或时间

DateDiff(字符串表达式两个日期时间间隔,第一个日期,第二个日期[,指定一个星期的第一天默认周日[,指定一年的第一周]])   计算两个日期间的间隔

DatePart(返回的日期单位,日期[,一周的第一天[,指定一年的第一周]])   获取指定日期在指定年的第几天、周和月

FormatDateTime(日期[,日期/时间所使用的格式])   将日期数字转换成日期或时间格式表达式

清除字符串空格

LTrim(字符串或字符串变量)   清除前导空格

RTrim(字符串或字符串变量)   清除末尾空格

Trim(字符串或字符串变量)   清除字符串中的空格

字符与ASCII码转换

Asc(字符串参数)   将字符串第一个字符转换成ASCII码

Chr(ASCII码)   将ASCII码转换成对应字符


相关代码说明和实例可查询VBA开发文档 以上内容是本人自学笔记总结,欢迎指正,有关Excel的问题,可私信联系,互相交流讨论,共同进步,谢谢。部分内容和数据来自互联网,如有疑问,欢迎联系。



VBA学习-数组、过程与函数的评论 (共 条)

分享到微博请遵守国家法律