VBA
2021-03-22 23:21:25 12 举报
AI智能生成
VBA
作者其他创作
大纲/内容
程序
程序构成
模块
过程
代码
对象
对象.属性
对象.方法
实例:宏的录制
设置快捷键
指定按钮
指定常用工作栏按钮
设置安全级别
编程环境VBE
进入编辑器
Alt+F11
开发工具—Visual Basic
右键工作表标签—查看代码
开发工具—查看代码
主窗口
工程资源管理器
Excel对象
窗体对象
模块vs类模块
概念
保存VBA代码
创建特定的类或对象
建立后名称
模块1、模块2...
类1、类2...
属性窗口
代码窗口
立即窗口
菜单栏
工具栏
简单操作
模块添加与移除
编写程序
帮助
基础语法
数据类型
数据类型
Byte字节型
1
0~255,整数
年龄
加班天数
Boolean布尔型
2
逻辑判断,True/False
Integer整数型
2
-2768~32767,整数
人数
%
Long长整数型
4
-2147483648~2147483647,整数
人口数
&
Single单精度浮点型
4
-3.402823E38~-1.401298E-45
圆周率
!
Double双精度浮点型
8
负数: -1.79769313486232E308~
-4.94065645841247E-324
正数:4.94065645841247E-324~1.79769313486232E308
基本工资
#
Currency货币型
8
-922,337,203,685,477.5808~922,337,203,685,477.5807
@
Decimal小数型
分支主题
不含小数时: +/-79,228,162,514,264,337,593,543,950,335
含小数时:+/-7.9228162514264337593543950335
最小的非零值:+/-0.0000000000000000000000000001
14
Date日期型
日期范围:100 年 1 月 1 日 到 9999 年 12 月 31 日
时间范围:0:00:00~23:59:59
8
日期
String字符串型-变长
10 +字符串长度
0 ~大约 20 亿
姓名、工号
$
String字符串型-定长
字符串长度
1 ~大约 65,400
$
Object
4
对象变量,用来引用对象
Variant
除定长String数据及用户自定义类型外,可包含任何种类的数据
如果是数值,最大可达Double的范围
如果是字符,与变长String范围一致
用户自定义
每个元素的范围与它本身的数据类型的范围相同
常量和变量
声明变量
声明多个变量
强制声明变量
变量作用域
单个过程
Dim/Static,作用于本过程,本地变量
单个模块
Dim/Private,作用于所在模块,模块级变量
所有模块
Public,作用于所有模块,公告变量
变量赋值
数据型变量赋值
对象型变量赋值
常量
常量赋值
常量赋值
数组
数组特征
共享一个名字:数组名
多个同类型变量构成一个数组
元素按序排列存储在数组中,通过索引号区分
数组是变量
声明数组
数组维数
声明动态数组
其他创建方式
Array函数
Split函数
Range函数
UBound/LBound函数
Join函数
数组写入单元格
对象
属性
相对性
方法
共享一个名字:数组名
运算符
算术
+
求和
-
求差,求相反数
*
求积
/
求商
\
整除
^
指数
Mod
取余
比较
=
等于
表达式1=表达式2
当两个表达式相等时返回Ture,否则返回False
<
小于
表达式1<表达式2
当表达式1小于表达式2时返回Ture,否则返回False
>
大于
表达式1>表达式2
当表达式1大于表达式2时返回Ture,否则返回False
<=
小于或等于
表达式1<=表达式2
当表达式1小于或等于表达式2时返回Ture,否则返回False
>=
大于或等于
表达式1>=表达式2
当表达式1大于或等于表达式2时返回Ture,否则返回False
<>
不等于
表达式1<>表达式2
当表达式1不等于表达式2时返回Ture,否则返回False
Is
比较两个对象的引用变量
对象1 Is 对象2
当对象1和对象2引用相同的对象时返回True,否则返回False
Like
比较两个字符串是否匹配
字符串1 Like 字符串2
当字符串1与字符串2匹配时返回Ture,否则返回False
连接
+
两边表达式为文本字符串,执行连接;数值执行计算
&
无论运算符左右的数据类型,执行连接运算
逻辑
And
与
表达式1 And 表达式2
表达式1和表达式2的值都为Ture,返回Ture,否则返回False
Or
或
表达式1 Or 表达式2
表达式1和表达式2的值其一为Ture均返回Ture,否则返回False
Not
非
Not 表达式
表达式的值为Ture,返回False,否则返回Ture
Xor
异或
表达式1 Xor 表达式2
表达式1和表达式2的值不同时,返回Ture,否则返回False
Eqv
等价
表达式1 Eqv 表达式2
表达式1和表达式2的值相同时,返回Ture,否则返回False
Imp
蕴含
表达式1 Imp 表达式2
表达式1的值为Ture,表达式2的值为False时返回False,否则返回Ture;相当于Not表达式1Or表达式2
通配符
*
代替任意多个字符
?
代替任意一个字符
#
代替任意一个数字
[charlist]
代替位于[charlist]中任意一个字符
[!charlist]
代替不在[charlist]中任意一个字符
运算顺序
括号
()
指数
^
求相反数
-
乘法除法
*,/
整除
\
取余
Mod
加法减法
+,-
字符串连接
&,+
比较运算
=,<>,<,>,<=,>=,Like,Is
逻辑
And
Or
Not
Xor
Eqv
Imp
内置函数
基本语句结构
常用语句
If...Then语句
Select Case语句
For...Next语句
Do While语句
Do Until语句
For Each...Next语句
GoTo语句
With语句
基本过程
Sub过程
编写位置
声明Sub过程
执行Sub过程
作用域
公共过程
私有过程
Function过程
编写位置
自定义函数
代码排版
缩进
短行
多行合并
注释
设置(解除)注释块
常用对象
常用对象
Application
Excel应用程序
Workbook
工作薄
Worksheet
工作表
Range
单个单元格或单元格区域
Application
ScreenUpdating属性
DisplayAlerts属性
EnableEvents属性
WorksheetFunction属性
Application常用属性
ActiveCell
当前活动单元格
ActiveChart
当前活动工作簿中的活动图表
ActiveSheet
当前活动工作簿中的活动工作表
ActiveWindow
当前活动窗口
ActiveWorkbook
当前活动工作簿
Charts
当前活动工作簿中的所有图表工作表
Selection
当前活动工作簿中所有选中的对象
Sheets
当前活动工作簿中所有Sheet对象,包括普通工作表、图表工作表、Ms Excel 4.0宏表工作表和Ms Excel 5.0对话框工作表
Worsheets
当前活动工作簿中的所有Worksheet对象(普通工作表)
Workbooks
当前所有打开的工作簿
实例:Excel界面设置
Workbook
引用
索引号
名称
常用操作
新增
打开
激活
保存
关闭
ThisWorkbook/ActiveWorkbook
Worksheet
引用
索引号或标签名称
代码名称
常用操作
新建工作表
更改工作表标签
删除工作表
激活工作表
复制工作表
移动工作表
隐藏/显示工作表
获取工作表数目
Sheets
Range
引用
单元格
属性
内容
个数
地址
操作
选中单元格
选择性清除单元格
复制单元格区域
剪切单元格
删除单元格
其他操作
引用整行
引用整列
Application对象的Union方法
Range对象的Offset属性
Range对象的Resize属性
Worksheet对象的UsedRange属性
Range对象的CurrentRegion属性
Range对象的End属性
xlToLeft
向左,源单元格<Ctrl+左方向键>
xlToRight
向右,源单元格<Ctrl+右方向键>
xlUP
向上,源单元格<Ctrl+上方向键>
xlDown
向下,源单元格<Ctrl+下方向键>
其他常见对象
名称
单元格批注
美化单元格
字体
底纹
边框
其他
实例:典型操作
创建工作簿
判断工作簿是否打开
判断工作簿是否存在
向关闭的工作薄录入数据
隐藏活动工作表外所有工作表
批量新建工作表
批量对数据分类
将工作表保存为新工作表
快速合并多表数据
汇总同文件夹下多工作簿数据
为工作表建立目录
Excel事件
Worksheet事件
Worksheet事件列表
Activate
激活工作表时发生
BeforeDoubleClick
双击工作表后,默认双击操作之前发生
BeforeRightClick
右击工作表后,默认右击操作之前发生
Calculate
重新计算工作表之后发生
Change
单元格发生更改时发生
Deactivate
由活动工作表变为不活动工作表时发生
FollowHyperlink
单机工作表中任意超链接时发生
PivotTableUpdate
更新数据透视表之后发生
SelectionChange
所选内容发生更改时发生
自动提示更改内容
选中对象
激活工作表时运行程序
禁止选中其他工作表
Worksbook事件
Activate
激活工作表时发生
AddinInstall
当工作簿作为加载宏安装时发生
AddinUninstall
当工作簿作为加载宏卸载时发生
AfterXmlExport
在保存或导出指定工作簿中的XML数据之后发生
AfterXmlImport
在刷新现有XML数据连接或新的XML数据被导入任意一个打开的工作簿后发生
BeforeClose
在关闭工作簿前发生,如果已更改,则此事件在询问用户是否保存更改之前发生
BeforePrint
在打印指定工作簿或其中任何内容之前发生
BeforeSave
在保存工作簿前发生
BeforeXmlExport
在保存或导出指定工作簿中XML数据之前发生
BeforeXmlImport
在刷新现有XML数据连接或新XML数据被导入任意一个打开的工作簿前发生
Deactivate
在工作簿从活动状态转为非活动状态时发生
NewSheet
在工作簿新建工作表时发生
Open
在打开工作簿时发生
PivotTableCloseConnection
在数据透视表连接关闭之后发生
PivotTableOpenConnection
在数据透视表连接打开之后发生
SheetActivate
在激活任意工作表时发生
SheetBeforeDoubleClick
在双击任意工作表时(默认双击操作之前)发生
SheetBeforeRightClick
在右击任意工作表时活在图标上绘制更改的数据之后发生
SheetCalculate
在重新计算工作表时活在图表上绘制更改的数据之后发生
SheetChange
在更改了任何工作表中的单元格时发生
SheetDeactivate
当工作表从活动工作表变为不活动工作表时发生
SheetFollowHyperlink
当单击工作簿中任何超链接时发生
SheetSelectionChange
任意工作表上选定区域发生更改时发生(图表工作表例外)
Sync
当作为“文档工作区”一部分的工作簿的本地副本与服务器副本进行同步时发生
WindowActivate
激活任意工作簿窗口时发生
WindowDeactivate
任意工作簿窗口由活动窗口变为不活动窗口时发生
WindowResize
调整任意工作簿窗口大小时发生
自动程序
MouseMove事件
Application方法
OnKey
OnTime
实例:典型技巧
快速录入数据
快速寻找数据
自动保存文件
用户界面设计
控件
窗体控件
标签
用于输入和显示静态文本
分组框
用于组合其他多个控件
按钮
用于执行宏命令
复选框
选择控件,可以多项选择
选项按钮
选择,通常几个选项按钮用组合框合在一起使用,只能同时选择其中之一
列表框
显示多个选项列表,可以从中选择之一
组合框
提供可选择的多个选项,可以选择其中之一
滚动条
包括水平和垂直
微调控件
单击控件的箭头选择数值
ActiveX控件
用户交互
InputBox函数
Application对象的InputBox方法
MsgBox函数
显示按钮
显示图标样式
缺省按钮
对话框类型
返回值
Application对象的FindFile方法
Application对象的GetOpenFilename方法
Application对象的GetSaveAsFilename方法
Application对象的FileDialog方法
用户窗体
添加窗体
窗体属性
添加窗体内控件
显示窗体
手动
代码
模式
关闭窗体
手动
代码
使用控件
初始化窗体
命令按钮
数据录入
键盘控制控件
实例:典型技巧及范例
调查问卷设计
职工信息管理
登陆窗体
代码调试与优化
错误
编译错误
运行错误
逻辑错误
程序状态
设计模式
运行模式
中断模式
调试工具
中断模式
运行错误
编译错误
中断执行
断点设置
Stop语句
立即窗口
本地窗口
监视窗口
错误处理
Go Error GoTo标签
On Error Resume Next
On Error GoTo 0
加快代码运行速度
变量设置
声明变量为合适数据类型
尽量不适用Variant型数据
避免变量一直存在内存中
避免反复引用相同对象
with语句简化
使用变量简化引用对象
尽量使用函数
去掉多余激活和选择
合理使用数组
关闭屏幕更新
收藏
0 条评论
下一页