多语言展示
当前在线:176今日阅读:176今日分享:34

Excel VBA使用说明

Excel VBA使用说明
工具/原料

excel

方法/步骤
1

个人宏工作簿:是为宏儿设计的一种特殊的具有自动隐藏特性的工作簿。第一次会创建名为“PERSONAL.XLS'的新文件,保存在C :\WINDOWS\Profiles\ApplicationData\Microsoft\Excel\XLSTART,启动时excel会自动将此文件打开并隐藏在活动工作簿后面(在“窗口”菜单中可选择“取消隐藏”).不需要每次打开excel文件启动个人宏工作簿时,可在文件夹中删除此文件。功能:让某个宏在多个工作簿都能使用

2

一个模块包含四类代码:1. 声明:不可执行的代码,用来给VBA提供常数、变量或过程的定义信息,并且制定其特性,如数据类型的声明。2. Sub过程:指完成某项特定任务的VBA代码集合,sub过程不能返回值3. Function函数:函数,可返回一个运算结果4. 属性过程:类模块中的特殊过程,可创建并操作类的自定义属性

3

立即窗口:1. 开发代码中加入Debug.Print语句,可输出到立即窗口。2. 立即窗口可加入执行代码,只需在代码前面加上?,按【enter】即可独立立即执行

4

事件:1. 双击对象,弹出该对象的代码窗口2. 在代码窗口上部左侧选择对象,右侧下拉框可选择事件常见事件:工作簿:1. 打开Workbook_Open2. 关闭Workbook_BeforeClose3. 保存Workbook_BeforeSave4. 打印Workbook_BeforePrint工作表:1. 双击Worksheet_BeforeDoubleClick2. 右击Worksheet_BeforeRightClick3. 选中区域/单元格Worksheet_SelectionChange4. 改变单元格内容Worksheet_Change5. 激活Worksheet_Activate

5

常量:1. 符号常量:Const 常量名=常量值,如Const PI=3.142. 日期常量:用#括起来的日期字符串就是日期常量,如#3/28/2019#3. 内置常量:一般以Vb为前缀,可直接使用,如VbRed

6

变量:Dim语句定义一个变量后,VBA自动为该变量赋值。若变量为数值型,则初始值为零;若变量为字符串型,则初始值为空字符串;未定义数据类型的变量,则默认值为variant。Dim: 普通局部变量;只能在声明它的过程中使用,变量在过程执行时才分配存储空间,执行后即释放。Static: 静态局部变量;只能在声明它的过程中使用,在整个程序运行过程均有效。Private: 模块变量;必须在某个模块的生命部分进行预先声明,在模块内的所有过程都可以使用。Public: 全局变量;在标准模块的所有过程之外的起始位置进行定义的变量,运行时所有类模块和标准模块的所有子过程和函数可以使用该变量。Option Explicit:在模块的开始部分添加该语句行,可实现强制用户显式声明,避免变量名拼写错误。数组: Dim 数组名(n) [As 数据类型], 存储0-10共11个数据。数据类型:(保留字或说明符)1. Dim i as Integer = Dim i% (2字节)2. Dim i as Long = Dim i&    (4字节)3. Dim i as Single = Dim i!    (4字节)4. Dim i as Double = Dim n# (8字节)5. Dim i as String =Dim i$  (2M), Dim i as String*10 (定长10字符,0~64K)6.  Boolean 2字节,True或False7.  Date 8字节8. Object 声明为对象变量,用Set语句赋值,Dim myobject as ObjectSet myobject=worksheet('Sheet')Set myobject=Nothing  '中断关联9. Byte10. Currency 货币11. Variant 变体型

7

运算符:MOD: 取模运算10MOD3=1+:如果两边为字符串时,连接字符串,“1”+“2'='12'&:强制连接为字符串 1&2=12XOR: 逻辑排除运算符,左右表达式只有一个为真时,为真EQV:逻辑等价运算符,左右表达式逻辑值相同为真IMP:逻辑蕴含运算符,左表达式为真,右为假,结果为假,否则为true。

方法/步骤2
1

特殊字符回车换行符:vbCrLf

2

过程:事件:Private Sub 事件(……)End SubSub过程:[Private|Public|Friend|Static] Sub 过程名[(参数)][程序语句][Exit Sub][程序语句]End Sub调用:Call 过程名(过程参数)或过程名(过程参数),作为语句使用Function:[Private|Public|Friend|Static] Function 函数名[(参数) [as 参数类型]] [as 返回类型][程序语句]函数名=表达式1[Exit Function][程序语句]函数名=表达式2End Function调用:1. 在excel表中直接调用2. 在VBA像内置函数一样使用, 如a=函数(参数)

3

常用函数:输入:变量 = InputBox(<提示>[,<标题>,<默认值>][,<边距1>,<边距2>])输出:[对象].print [<表达式>Debug.print[变量名response]=MsgBox字符串:Left('abcdefg', 2) = 'ab'Right('abcdefg', 2) = 'fg'Mid('abcdefg', 3, 2) = 'cd''a' & 'b'='ab'调用内置函数Application.WorksheetFunction.(内置函数)最后一行lastrow = thisworkbook.Sheet1.Range('A65536').End(xlUp).Row工作簿ActiveWorkbook.Name 文件名,不包含路径ActiveWorkbook.FullName 文件名,包含路径ActiveWorkbook.Path 路径

4

结构语句:1. 条件If 逻辑表达式1 then      程序语句1   elseif 逻辑表达式2 then      程序语句2   ……   else       程序语句nEnd if2. 循环For 循环变量=初始值 to 最终值 [Step 步长]      循环语句Next [循环变量]

实例

定时:Application.OnTime 安排一个程序在将来的指定时间运行,不占用线程Application.Wait 用于暂停程序,直到一特定时间才可继续执行。如果达到指定时间,则值为true。

推荐信息