课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除!
目录
0 Sheet(s)、Worksheet(s)区别
1. Worksheet(工作表):
- 是Excel工作簿中的一个表格,用于存储、处理和显示数据。
- 通常指的是用户可以直接编辑和操作的界面。
2. Sheet(表):
- 是一个更广义的术语,可以指代工作簿中的任何类型的表。
- 包括Worksheet(工作表)、Chart Sheet(图表工作表)以及其他特殊类型的表(如Excel 4.0宏工作表等)。
3. Sheets集合:
- 是一个包含工作簿中所有Sheet对象的集合。
4. Worksheets集合:
- 是Sheets集合的一个子集,只包含工作簿中的Worksheet对象。
Sheets.Count = Worksheets.Count + Chart Sheet.Count + 其他特殊类型的表.Count
当Charts.Count,其他特殊类型的表.Count = 0时,Sheets.Count =Worksheets.Count
1. 方法:Select、Add、Delete、Copy
1.1 注意事项
- 参数输入:① 输入方法名称,空格键,自动提醒参数类型;② 参数名 := 值(使用":="赋值)
1.2 代码展示
'select 工作表选择
Sheet1.Select ' 选择sheet1工作表
Sheets(1).Select ' 选择第一张工作表
Sheets("1月").Select ' 选择表名“1月”的工作表
Sub Add_Sheet()
'建100张表,分别叫1,2,3,4.....
For i = 1 To 100
Sheets.Add after:=Sheets(Sheets.Count) 'Sheets(Sheets.Count)代表最后一张表
Sheets(Sheets.Count).Name = i '重命名上一步插入的最后一张表表名
Next
End Sub
Sub Delete_Sheet()
'删除100张表
excel.Application.DisplayAlerts = False ' 不显示警告提示(否则要按100次删除表的确认)
For i = 1 To 100
Sheets(1).Delete '重复100次删除第一张表
Next
excel.Application.DisplayAlerts = True ' 显示警告提示
End Sub
Sub Copy_Sheet()
'Sheets(Sheets.Count)代表最后一张表,sheet1工作表复制粘贴到最后一张表之后
' 若省略参数,则会复制粘贴到新工作簿
Sheet1.Copy after:=Sheets(Sheets.Count)
End Sub
2. 属性:Count、Name
Sub Rename()
Sheet1.Name = "8月" '工作表sheet1重命名为8月
End Sub
Sheets.Count ' 属性 返回一个值
3. For each 循环(遍历集合中每个元素)
3.1 应用1 取工作表名称
Sub Extract_SheetName()
' 取表名
Dim sheet As Worksheet
Dim i As Integer
For Each sheet In Worksheets
If sheet.Name <> "部门" Then
i = i + 1
Range("a" & i) = sht.Name ' 表名放在当前选中sheet的A1至Ai单元格
End If
Next
End Sub
3.2 应用2 删除工作表(保留特定工作表 & 不显示警告框)
Sub Delete_Sheet()
Dim sheet As Worksheet
Application.DisplayAlerts = False ' 不显示警告框
For Each sheet In Sheets
If sheet.Name <> "绝不能删" Then ' 保留表名为“决不能删”的表,其他均删除
sheet.Delete
End If
Next
Application.DisplayAlerts = True
End Sub