**
第二章、第三章
**
- 宏的两种录制模式——相对引用和绝对引用
- 表单控制组和命令控件
表单控件是为电子表格专门设计的,ActiveX控件是为Excel的用户窗体设计的。 - VBE组件:菜单栏,工具栏,工程资源管理器,属性窗口,代码窗口,立即窗口。
- 空格+下划线表换行
- Application对象是包罗万象的对象。
- 对象,属性,方法。
一行一条指令
空格加下划线=换行
在运算符之间插入空格
VBA变量名称不区分大小写,且有后来者居上的道理。myvalue ->MyValue
工具、选项、编辑、编辑器,建议全选。
关于注释:
1、'
2、"can't help" 双引号里面的不会被当做注释
3、Rem (remark) = '
4、视图-工具栏-编辑-解除注释块
!变量命名规则
1、开头必须是字母,字母数字下划线
2、长度0~255
!数据类型
byte 0~255
decimal 是 varirant的子类型。
不失精度——double
int <132 7671 但建议用 long ,运行快。
typename()——显示数据类型。
!声明数据变量的好处:
1、更快更有效地使用内存
2、避免出现与错误拼写变量名称有关的问题
强制声明所有变量:
option explicit
dim /static
dim / private
public
End语句 不同于 End Sub语句
Dim MyValue #只声明了变量,没有声明数据类型,默认为Variant
Dim i,j,k as Interger 只能k为Interger数据类型
Dim i as interger ,j as interger
局部变量最高效,使用完释放内存。
当VBA遇到End语句,所有模块作用域下面的变量都失去它们的值。
static 静态变量
在过程结束时,变量的值不丢失。
但在遇到End语句时丢失。
常量 Const
某过程常量
某模块常量
全模块常量
预定义常量,在VBA中已经被声明了的变量。
字符串:
定长字符串 Dim Mystring as string *50 (最大长度为50)
变长字符串 Dim Mystring as string 6 5535
在VBA中,指定日期和时间使用 #时间#
Dim starttime as date
starttime = #2019/1/1#
\ 整数
mod 余数
VBA 数组默认从0开始
Dim MyArray (1 to 100) as integer = 在模块的任意过程之前 **option Base 1**
Dim MyArray (1 to 100, 1 to 100, 1 to 100) as Integer
MyArray(4,8,2)=0
动态数组
Dim MyArray() as Integer
ReDim MyArray(1 to x)
对象变量Range (set 把对象赋给变量)
Dim inputarea as range
set inputarea = Range("C16:E16")
worksheets("sheet1").range("A1").Value = 124
worksheets("sheet1").range("A1").Font.Bold = True
Dim MyCell as Range
set MyCell = worksheets("sheet1").range("A1")
MyCell.value =124
MyCell.Font.Bold = True
查看VBA内置函数:
VBA.
VBA函数与工作簿函数:
1、VBA有,工作簿没有。
2、VBA有,工作簿有。——不能使用等价函数,只能使用VBA函数,否则报错。
3、VBA没有,工作簿有。——在函数名称加上**Application.WorksheetFunction.**函数名()
例:romanvalue = Application.WorksheetFunction.Roman(1939)
不失精度——Double
Long(4字节)比Int(2字节)
variant(16字节)(万能数据类型):可保存数值和字符串。像Empty,Error,Nothing,NULL特殊数值也可保存。精度上面可保存到双精度数据类型的任意数值。
第四章
-
执行:
当在VBA时,F5 + Alt+R
当在工作簿时,Alt+F8 + Alt+R -
设置快捷键执行过程
快捷键区分大小写 如:Ctrl+s Ctrl+Shift+s(大写S)
自定义快捷键的优先级高于Excel预定义的快捷键优先级