一、问题导入

1、有一张模板日报表,希望基于模板自动生成以每天日期命名的31张日报表,并在每张表的特定单元格内写入该表代表的日期;
2、统计完日报表数据后,自动将31张日报表的数据汇总到汇总表中(涉及到每张表若干字段的复制)。

二、worksheet(s):工作表对象的表达:观察“1操作工作表”的vba中的表名;不同用法适合不同的场景

VBA属性中的"名称" vba属性中的"name"工作界面的名称 按排列顺序的名称(易用于循环
sheet1,sheet2,sheet3······ sheets“1月”),sheets“2月”)······ sheets(1),sheets(2)·····sheets(i)

   注:worksheet(s)和sheet(s)均可表示表,但前者特指工作表,后者还包括图表、宏表等。一般情况下二者可混用。
        注意单复数形式的区别

三、工作表对象的主要方法属性
  熟悉手动方式插入表、删除表、复制表的操作,用宏录制方法了解关键方法及可能语法。

方法 语法 示例 备注
select      
add sheets.Add(BeforeAfter, Count, Type) sheets.Add before:=sheets(2) (1)count是插入的数量,type是插入的类型,均可不指定(2)常用插入到最后一张之后
delete sheet名.delete (1)删除表时会激活警告框,解决方法参见四、application (2)删表易入坑,如for i=1 to 100 shees(i).delete易报错
copy sheet名.Copy(Before或 After) sheet1.Copy after:=Sheet3  若没加after或before参数,则将失去目标,因此新开一个文件

  注:(1)若未指定表,则对单元格的操作在当前active表中进行,而当前active表受文件使用者影响,有不确定性;
  (2)理解方法与属性,句点表达方式“对象.方法(属性)”,如“狗.颜色”,“狗.嘴”,“狗.咬”,“狗.跑”······注意一句完整的语句要有动作,因此“狗.颜色”,“狗.嘴“
不能单独成句,但可对其赋值以构成完整语句;

属性 示例 备注
count sheets.count 只读属性,不能对其赋值
name  sheet1.name vba中可用字符串对其修改赋值

三、练习题:

  (1)新建12张表,命名分别为1-12月
  (2)把所有表的表名取出,放在某张表中
  (3)完成问题导入1、2
  (4)作业:成绩表,文件中有多个表格,数目不确定,每张表个是一个地区的考生成绩,每个地区的考生数量<100。
        请填充每张表的称呼和专业代号,删除成绩表中名字为空的数据.
      (注:sheet1.range("a1").select的写法不允许,不能在一行代码中连续选择表及其中的单元格,需拆分成sheet1.select和sheet1.range("a1").select两行)

四、application:主程序对象
  (1)警告框关闭与重启: excel.application.displayAlerts = fasle   sheet.delete   excel.application.displayAlerts = true    配对使用
  (2)屏幕自动刷新关闭与重启: Application.ScreenUpdating = fasle               Application.ScreenUpdating = True        配对使用