VBA-04操作工作表worksheet
WorkSheet对象
工作表对象,表示打开的Excel的一个个sheet页
每一个Excel 默认的工作表有三个,分别是Sheet1,Sheet2, Sheet3
Sheets
- 表示Excel所有的Sheet页的集合
- 不是单独的一个Sheet页
- 在VBA代码中可以直接使用,表示所有的Sheet工作表集合
属性
- index
- 表示Sheets对象中的索引,顺序,通过index属性可以获取单独的Sheet页
- Sheets(i)
- ★ index 表示顺序,从开始
- ★ 顺序指定是 Excel中下面Sheet页栏中的顺序,而不是创建的顺序
- 因为Sheet页的很容易移动,导致顺序变化
- name
- 属于Sheet的属性,而不是Sheets的属性
- Sheet页的名字,就是Sheet页栏中显示的名词,默认显示Sheet数字
- 但是一般和Sheets搭配使用,用于获取单独的Sheet页
- Sheets("北京") :
- count
- 获取Sheets的数量
- ★ sheets.count 表示最大的索引,也就是Sheet页栏中最后的Sheet页
方法
- Select
- 字面意思:选择
- 对象是: WorkSheet
- 对于 Sheets 表示 激活当前Sheet页
- 即:单机Sheet页
-
Sheet1.Select
- Add
- 表示添加一个Sheet页
- 对象是: Sheets
- 而不是新建一张Excel表
- 注意: 当没有指定参数时
- 会默认插入到Sheet页栏的第一个位置,即index=1的位置
- Sheet对象是按照顺序依次添加,NAME属性就是Sheet对象最开始的名字 Sheet
- 参数
- Before: 表示插入到那个Sheet的前面
- After : 表示插入到那个Sheet的后面
- Type: 选中插入的类型,一般不用添加,使用默认情况
- Count: 插入的Sheet的数量,默认一个
- 常用: 在最后面插入新的Sheet页
-
Sheets.Add after:=Sheets(Sheets.Count)
-
- Delete
- 删除Sheet页
- 对象是:WorkSheet
- 注意:☆
- 删除表必须设置警告信息,也就是对话框
- 删除表的时候,不能全部删除,必须保留一个
- 删除表的过程中,不能通过for循环中的变量控制删除哪个表,只能删除第一张或者最后一张表
- 当使用Sheets(变量)删除表,在删除的过程中,Index一直在变化,当删除到中间的时候,变量>Sheets.count, Sheets(变量)不存在,会报错
- ★ 不论是手动删除,还是VBA代码删除,都会出现程序级别的对话框
-
' 删除开始之前,取消Excel显示对话框 Application.DisplayAlerts = False ' 删除完成之后,恢复Excel显示对话框 Application.DisplayAlerts = True
- Copy
- Sheet的复制
- 对象是:WorkSheet
- 当没有参数时
- 会创建一些新的Exce存储Sheet页
- 但是需要保存创建的Excel
- 参数: 表示要将Sheet复制到那个地方
- After: 复制到指定的Sheet后面
- Before:复制到指定的Sheet前面
- ☆ COPY 没有返回值,只是一个动作
- 复制过去的Sheet默认使用原来的Sheet.NAME
Sheet和Sheets
- Sheets 表示所有Sheet的集合
- Sheet 表示一个 Sheet
- WorkSheet的方法有的适合Sheet: 如Delete, Copy, Select
- 有的适合Sheets, 如 Add
- Sheets(index/ name) --->> Sheet
- 使用的时候需要注意