VBA学习数组 过程与函数
本文核心词:学习,EXCEL,编程,VBA,表格,宏
数组声明
一维数组
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的问题,可私信联系,互相交流讨论,共同进步,谢谢。部分内容和数据来自互联网,如有疑问,欢迎联系。
版权声明:免责声明:本文来源网友投稿及网络整合仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。投诉邮箱:1765130767@qq.com.