学习视频推荐:希冀ExcelVBA
转自:小白学Excel——第二季【VBA篇】
一、认识VBA
1、什么是VBA
VBA的全称是Visual Basic For Application,Visual Basic即VB, 是一种编程语言,Application即应用程序, 这里指Excel(及
word、ppt等),所以VBA可以理解成“在Office办公软件里面使用的编程语言”。
2、VBA有什么用
(1)节省时间,写好vba后所有工作都能在1秒左右完成
(2)自动处理,自动完成办公软件中所有能手动完成的操作
(3)减少错误,程序能自动提示代码的错误,调试完后,会严格按照你的设定执行操作
(4)与其它办公软件交互,复制、移动、修改等等都不需要手动打开其它文件
(5)编写小工具、小程序,一般基于Excel进行开发
3、哪些人要学VBA
(1)经常需要处理Excel数据的人员
(2)喜好电脑知识,经常协助同事处理Excel数据的人员
(3)编程入门人员
4、在哪里写VBA
(1)先设置:
文件——选项——自定义功能区——勾选“开发工具”
宏安全性可设置为“启用所有宏”
(2)三种方法打开:
a、在任意工作表标签上方,右键,在弹出的选项列表中,选择「查看代码」
b、开发工具——Viusal Basic
c.Alt+F11
5、如何保存VBA代码
(1)直接保存为Excel文件,格式为xls、xlsm、xlsb(默认的xlsx不能保存VBA代码)
(2)复制VBA代码,用记事本等保存
二、从“宏“认识VBA代码
1、录制宏
(1)宏就是一段VBA代码,一般用录制的方法获取
(2)如何录制宏:录制宏——任何操作——停止录制
(3)查看宏的代码
2、For循环
三、Range对象
1、认识Range对象
Range,单元格对象,对象都有属性(灰色图标)、方法(绿色图标)
属性有:value(值)、row(行号)、column(列号)、font(字体)、interior(内部)等
方法有:select(选中)、clear(清除)、copy(复制)、PasteSpecial(粘贴)等
Range("a5").select
Range("a:a")
Range("1:1")
2、&文本连接符
3、实例
Sub序号()
For i=1 To 100
Range("a"&i)=i
Next i
End Sub
Sub 选择()
Range("b5").Select'选中(注释)
Range("a:a").Select
Range("1:1").Select
End Sub
Sub 复制()
Range(“cl")="小白学excel"
Range ("cl").Copy
Range("c2").PasteSpecial
End Sub
Sub字号()
Range ("cl:c2"). Font. Size = 20
End Sub
四、sheets对象(1)——属性、方法
1、认识Sheets对象
Sheets,工作表对象
属性有:name(表名)、count(计数)、visible(隐藏)等
方法有:select(选中)、add(新增)、delete(删除)、copy(复制)等
2、工作表的三种表示方法
(1)使用工作表的名称:sheets(”汇总“)
优点:最常用的方法,直观,可读性强,工作表位置可以改变;
缺点:工作表称不能改变
(2)使用工作表的代码名称:sheet1
优点:简单,工作表名称、位置可随意修改;
缺点:不直观
(3)使用工作表的索引号:sheets(3)
优点:简单,工作表名称可以改变
缺点:工作表位置不能改变,不常用
Sub 选择()
Sheets("2月").Select
Sheet3.Select
Sheets(3).Select
End Sub
3、工作表的两个属性
(1)sheet1.name(表名)
(2)sheets.count(计数)
Sub表名()
Range ("a14") = Sheet1. Name
Range("al5") = Sheets.Count
End Sub
4、sheets的两个方法
(1)select(选择方法)
Sheet1.Select
Sheets(“汇总”).Select
Sheets(1).Select
(2)add(新建方法)
参数:sheets.add
默认新建在当前工作表前
Sub新建()
'Sheets.Add,Sheets("2月")
'Sheets.Add , Sheets (Sheets.Count)
For i = 1 To 12
Sheets.Add , Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = i &"月"
Next i
End Sub
五、Sheets对象(2)——复制、删除
1、sheets的两个方法
(3)copy(复制方法)
参数:sheet1.copy
如果不写参数,则会新建一个工作簿
Sub 复制表()
'Sheetl.Copy
Sheet1.Copy , Sheets(Sheets.Count)
End Sub
(4)delete(删除方法)
Sub 删除()
Application.DisplayAlerts = False
Sheets("姓名").Delete
Application. DisplayAlerts = True
End Sub
Sub取工作表()
For i =1 To_Sheets.Count
Range("f" & i) = Sheets(i). Name
next i
End Sub
2、屏蔽系统对话框
Application.displayalters=false/true
六、Workbooks对象(1)——新增、保持
1、认识Workbooks对象
Workbooks/workbook,工作簿对象
属性有:name(工作簿名)、path(路径)、fullname(带路径工作簿名)
方法有:add(新增)、open(打开)、save/saveas(保存/另存)、close(关闭)、activate(激活)
Sub属性()
Range ("al") = ThisWorkbook. Name
Range ("a2") = ThisWorkbook. Path
Range ("a3") = ThisWorkbook. FullName
End Sub
2、方法
(1)add(新增)
Sub新增()
Workbooks.Add
Range ("al") = ActiveWorkbook. Name
End Sub
(2)save/saveas(保存/另存)
Save 没有参数
Saveas(路径+文件名)
Sub 保存()
Workbooks. Add
ActivelWorkbook. Saveas
End Sub
Sub 另存()
Workbooks.Add
ActiveWorkbook.SaveAs"D:\EXCEL\aaa.xlsx"
ThisWorkbook. Save
End Sub
3、工作簿的表示方法
ThisWorkBook 代码所在工作簿
ActiveWorkBook当前激活工作簿
7、Workbooks对象(2)——打开、关闭
1、方法
(1)open(打开)
后面接参数(路径+文件名)
(2)close(关闭)
参数:
Workbooks.Close 关闭所有工作簿
Sub打开()
Workbooks.Open"D:\EXCEL\aaa.xlsx"
ActiveWorkbook.Close 0
ThisWonkbook.Close l
End Sub
2、实例——拆分工作簿
Sub拆分工作簿()
For i = 1 To Sheets.Count
Sheets(i).Copy
ActiveWorkbook.SaveAs"D:\EXCEL\"& Sheets(1).Name &".xlsx
ActivelWorkbook.Close
Next i
End Sub