学习视频推荐:希冀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(粘贴)等

  1. Range("a5").select
  2. Range("a:a")
  3. Range("1:1")

2、&文本连接符

  1. 3、实例
  1. Sub序号()
  2. For i=1 To 100
  3. Range("a"&i)=i
  4. Next i
  5. End Sub
  1. Sub 选择()
  2. Range("b5").Select'选中(注释)
  3. Range("a:a").Select
  4. Range("1:1").Select
  5. End Sub
  1. Sub 复制()
  2. Range(“cl")="小白学excel"
  3. Range ("cl").Copy
  4. Range("c2").PasteSpecial
  5. End Sub
  1. Sub字号()
  2. Range ("cl:c2"). Font. Size = 20
  3. End Sub

四、sheets对象(1)——属性、方法

1、认识Sheets对象

Sheets,工作表对象
属性有:name(表名)、count(计数)、visible(隐藏)等
方法有:select(选中)、add(新增)、delete(删除)、copy(复制)等

2、工作表的三种表示方法

(1)使用工作表的名称:sheets(”汇总“)
优点:最常用的方法,直观,可读性强,工作表位置可以改变;
缺点:工作表称不能改变
(2)使用工作表的代码名称:sheet1
优点:简单,工作表名称、位置可随意修改;
缺点:不直观
(3)使用工作表的索引号:sheets(3)
优点:简单,工作表名称可以改变
缺点:工作表位置不能改变,不常用

  1. Sub 选择()
  2. Sheets("2月").Select
  3. Sheet3.Select
  4. Sheets(3).Select
  5. End Sub

3、工作表的两个属性

(1)sheet1.name(表名)
(2)sheets.count(计数)

  1. Sub表名()
  2. Range ("a14") = Sheet1. Name
  3. Range("al5") = Sheets.Count
  4. End Sub

4、sheets的两个方法

(1)select(选择方法)
Sheet1.Select
Sheets(“汇总”).Select
Sheets(1).Select

(2)add(新建方法)
参数:sheets.add
默认新建在当前工作表前

  1. Sub新建()
  2. 'Sheets.Add,Sheets("2月")
  3. 'Sheets.Add , Sheets (Sheets.Count)
  4. For i = 1 To 12
  5. Sheets.Add , Sheets(Sheets.Count)
  6. Sheets(Sheets.Count).Name = i &"月"
  7. Next i
  8. End Sub

五、Sheets对象(2)——复制、删除

1、sheets的两个方法

(3)copy(复制方法)
参数:sheet1.copy
如果不写参数,则会新建一个工作簿

  1. Sub 复制表()
  2. 'Sheetl.Copy
  3. Sheet1.Copy , Sheets(Sheets.Count)
  4. End Sub

(4)delete(删除方法)

  1. Sub 删除()
  2. Application.DisplayAlerts = False
  3. Sheets("姓名").Delete
  4. Application. DisplayAlerts = True
  5. End Sub
  1. Sub取工作表()
  2. For i =1 To_Sheets.Count
  3. Range("f" & i) = Sheets(i). Name
  4. next i
  5. End Sub

2、屏蔽系统对话框

Application.displayalters=false/true
image.png

六、Workbooks对象(1)——新增、保持

1、认识Workbooks对象

Workbooks/workbook,工作簿对象
属性有:name(工作簿名)、path(路径)、fullname(带路径工作簿名)
方法有:add(新增)、open(打开)、save/saveas(保存/另存)、close(关闭)、activate(激活)

  1. Sub属性()
  2. Range ("al") = ThisWorkbook. Name
  3. Range ("a2") = ThisWorkbook. Path
  4. Range ("a3") = ThisWorkbook. FullName
  5. End Sub

2、方法

(1)add(新增)

  1. Sub新增()
  2. Workbooks.Add
  3. Range ("al") = ActiveWorkbook. Name
  4. End Sub

(2)save/saveas(保存/另存)
Save 没有参数
Saveas(路径+文件名)

  1. Sub 保存()
  2. Workbooks. Add
  3. ActivelWorkbook. Saveas
  4. End Sub
  1. Sub 另存()
  2. Workbooks.Add
  3. ActiveWorkbook.SaveAs"D:\EXCEL\aaa.xlsx"
  4. ThisWorkbook. Save
  5. End Sub

3、工作簿的表示方法

ThisWorkBook 代码所在工作簿
ActiveWorkBook当前激活工作簿

7、Workbooks对象(2)——打开、关闭

1、方法

(1)open(打开)
后面接参数(路径+文件名)
(2)close(关闭)
参数:
image.png

Workbooks.Close 关闭所有工作簿

  1. Sub打开()
  2. Workbooks.Open"D:\EXCEL\aaa.xlsx"
  3. ActiveWorkbook.Close 0
  4. ThisWonkbook.Close l
  5. End Sub

2、实例——拆分工作簿

  1. Sub拆分工作簿()
  2. For i = 1 To Sheets.Count
  3. Sheets(i).Copy
  4. ActiveWorkbook.SaveAs"D:\EXCEL\"& Sheets(1).Name &".xlsx
  5. ActivelWorkbook.Close
  6. Next i
  7. End Sub