表有哪些方法和属性?
方法也可以理解为动作,表的方法有select,add, delete, copy,表的属性有count,name
假设工作簿中按顺序新建3张表叫1月和2月和3 月。如何切换到第2张表?
Sheet2.select //sheet2是表的默认名称。重命名只是给sheet2起一个别名
Sheets(2).select //sheets(2)指工作簿的第2张表
Sheets(“2月”).Select // Sheets(“2月”)指重命名为2月的表
如何知道工作簿中有多少张表?
Sheets.count //注意这里是一个值,并不能运行,如果想要查看结果可以复制到单元格中
像这样:sheet1.range(“a1”)=sheets.count在sheet1表的A1单元格中可查看表数量。
如何新建一个表?
Sheets.add after:=sheet1 //在第一张表后面新建一张表
Sheets.add before:=sheet1 //在第一张表前面新建一张表
Sheets.add after:=sheets(sheets.count) //在最后一个表后面新建一张表
案例1
题目:新建一个工作簿,在工作簿中插入12个新表,名称依次为1月到12月,结果如下图:
分析:
新建12张表,需要执行12次,每次的操作一样,现在所有表后面新建一张表Sheets.add after:=sheets(sheets.count),然后给这个新建的表重命名需要用到name属性。,
代码:
Sub addsheet ()Dim i as integerFor i =1 to 12 Sheet1.add after:=sheets(sheets.count) Sheets(sheets.count).Name = i & “月”NextEnd sub如何删除一张表?
Sheet1.delete
但是会弹出确定删除吗对话框,我们需要先禁止弹出对话框再执行删除操作
Excel.application.displayalerts=false
Sheet1.delete
Excel.application.displayalerts=true//执行完要取消禁止
如何copy一张表?
Sheet1.copy //会新建一个工作簿,因为没有指定copy的位置
Sheet1.copy after:=sheets(sheets.count)
案例2
题目:将所有表(除了部门表)的名字按顺序填充到部门表的A列单元格中,结果如下图:
代码:
Sub al2() Dim i as integer For i =2 to sheets.count Sheets(“部门”).range(“a” & i-1)=sheets(i).Name NextEnd sub案例3
题目:下面工作簿中有5月份的日报表,每个表内容一致,现在需要将每个表中的报表日期、审核人、总计(汇总表中称为金额)等信息汇总到汇总表中,如下图:
最终结果,点击汇总按钮,汇总表自动填充汇总内容到相应位置
分析:
1.要使用for循环,从第2张表开始循环一直到最后一张表也就是sheets.count;
2.报表日期在每张表的e5单元格。可以用range(“e5”)获取相应的值;按顺序填充到汇总表的B列从第10行开始填充;
3.审核人在每张表的e6单元格。可以用range(“e6”)获取相应的值;按顺序填充到汇总表的C列从第10行开始填充;
4.总计(金额)在每张表的e44单元格。可以用range(“e44”)获取相应的值;按顺序填充到汇总表的D列从第10行开始填充;
5.插入一个汇总按钮,指定宏huizong()
代码:
Sub huizong() Dim i as integer For I =2 to sheets.count Sheet1.range(“b” & i+8)=sheets(i).range(“e5”) Sheet1.range(“c” & i+8)=sheets(i).range(“e6”) Sheet1.range(“d” & i+8)=sheets(i).range(“e44”) NextEnd sub对数据分析或者vba有兴趣的朋友可以关注我的公众号,我会在公众号里面发学习笔记,全是干货。一起学习一起成长!