1.打开VBA窗口
打开Excel-->文件(file)-->选项(options)-->自定义功能区(customize ribbon)-->主选项卡(main tabs)下-->开发工具(developer) -----勾选
返回主界面 菜单栏选择开发工具(developer)--->visual basic(或者使用快捷键alt+f11)
打开编写界面后,点击插入(insert)-->模块(module)--->可以开始编写VBA
2.VBA简单语法
2.1建立过程
标格式 Sub name()
......(内容)
End Sub
name表示名称,自行拟定即可,后面的括号不能丢, 书写时可以不需要切换大小写,换行后会格式会自动规整
2.2 变量定义
标准格式 Dim variable_name As data_type
Dim ...As...不可更改;variable_name为定义的变量名称,可自定义;data_type为定义变量的数据类型,有明确的类型,非自定义,包括String,integer,double,single,date,boolean,Variant等
定义一个整型: Dim variable_name As integer
定义一个浮点型:Dim variable_name As single //单浮点 ;Dim variable_name As double //双精度浮点
定义一个字符串: Dim variable_name As String
定义一个数组: Dim array1(10) As String //10表示数据长度,默认从1开始,数据类型可以改变
Dim array1(20 to 30) As String //20 to 30 为索引范围
Dim array1() As String //当不确定数组长度时可以使用
Dim array1(4,5) As String //二维数组
变量赋值: 变量名 = 值 即可,如果是string类型,赋值时需要加上双引号.
2.3简单语句
输出语句:输出在控制台上,并非Excel中: debug.print 变量 //变量可以是变量名,也可以是数值,也可以是字符串,字符串需要用双引号.
IF语句:标准格式: if 条件 then /if,then都属于关键字不可更改,条件语句例如x>10,(如果是等于使用一个等号表示即可.)
执行语句
else //在else语句之前,可继续添加条件,使用语句 else if 条件 then即可
执行语句
end if //if语句结束标志
CASE语句:标准格式:select case 测试表达式 //如果需要判断分数处于的等级,那么这里分数就是测试表达式
case 表达式1 //表达式可以是判断语句(例如a>b);表达式后没有冒号
执行语句1
case 表达式2
执行语句2
case 表达式3
执行语句3
... //可以有很多个这样的case语句,最后一个可以使用case else来代替.
end select //case语句结束标志
FOR语句:标准格式1: for 变量 = 起始值 to 结束值 //例如 for i= 1 to 10 ,i可以不使用dim定义, 类似于语句for(i=1;i<10;i++)
执行循环语句 //可以是多条语句
next //for循环结束标志
标准格式2: for 变量 = 起始值 to 结束值 step 步长 //例如 for i= 1 to 10 step 2,类似于语句for(i=1;i<10;i=i+2)
执行循环语句 //可以是多条语句
next //for循环结束标志
标准格式3: for each name0 in array1 //name0类似于for后面的变量名,array1是一个已经定义且有值的数组
执行循环语句
next //该语句常用于遍历数组
WHILE语句:标准格式:while 判断语句 //满足该语句执行下面的语句
执行语句
wend //while 循环结束标志
LOOP语句:标准格式1:do while/until 判断语句 //while是满足条件执行下面语句,until是直到条件成立时停止.
执行语句
loop //结束
标准格式2:do
执行语句 //先执行一次语句(标准1 和标准2类似于while语句和do while 语句的差别)
loop while/until 判断语句 //while是满足条件执行下面语句,until是直到条件成立时停止.
2.4对象
工作表 worksheet :标志格式: dim name as worksheet //name名字在以后引用该工作表时就在此时确定了
set name = worksheets("工作表名称") //name与上面定义的必须一致
单元格range :通常使用worksheet_object.Range()来引用。
标准格式:Dim name1 as Range //name1为定义的单元格名称
调用: set name1 = name.Range("A1:A5") //name为定义为worksheet的名称,Range中可以为单独一个单元格,也可以为一个范围,如果选择多个不连续区域,可以使用逗号隔开("A1:A5,D3:D9")
再对单元格操作时,可以使用 name.xxx(功能很多,可自行探索)
单元格内容cells:标准格式: name.cells(a,b) //name为定义的工作表名称,a表示行,b表示列.
如果要写单元格,可以直接赋值例如:name.cells(1,2) = 3
2.5方法(函数)
标准格式:function function_name(参数1,参数2...) as 数据类型 //参数需要加上参数类型,结构为 参数1 as 数据类型; 最后的数据类型为函数的返回值类型
例如: function sum1(num1 as integer,num2 as integer) as integer
方法(函数)可以在过程中(sub...end sub)调用
参数,有可选参数和必选参数,两者如果同时存在,必选参数必须放在参数表的前面
可选 标准格式:Optional parameter_name As data_type //可以直接赋值,也可以不赋值,如果直接赋值,在未传参的情况下默认为该值,否则为空.
必选 标准格式: parameter_name As data_type
3.Excel创建宏
为方便直接使用VBA创建的代码,不用每次进入界面选择运行,可以使用宏来实现
可以任意在Excel中插入一个图形,右键点击图形,选择指定宏(assign macro),在弹出的框中选择你需要的,确定即可.当使用时,点击图形即可完成代码运行
还有一种方法可以尝试:在开发工具(developer)选项中选择插入(insert),选择控件
来源:https://www.cnblogs.com/ssherry/p/12163273.html