vba07---for each循环
| 0、for each j in worksheets-----next |
| for each等同于下面这两句: |
![]() |
| 1、提取所有sheet的名称 |
| for each j--------next |
| 不把汇总表名称提取出来,就加一个if不,才能执行语句排除一下-----如果名称不是汇总才让提取 |
![]() |
| 2、 |
|
删除工作表,只保留其中一个sheet。使用if不就执行格式。如果名称不等于汇总就执行操作。 |
|
删除工作表会弹出一个框,会影响程序运行,因此程序运行开始关上提示框,程序结束之前再打开提示框 |
![]() |
| 把所有工作表都提取出来都存到i变量里面 |
![]() |
| 3、for each j可以应用在单元格中 |
| j代表区间的每一个单元格。range(”a1:a10“)中的each就是单个单元格 |
![]() |
| 4写一个汇总运算各个sheet的代码 |
![]() |
| 第一个循环,汇总表的几个姓名所在单元格进行的for循环 |
| 第二个循环,对各个sheet进行的for each遍历------------遍历时把表名不含“月”的不执行,因此加入if语句进行判断 |
|
第三个循环,对符合条件的sheet内部的姓名所在单元格进do while循环(姓名列不为空就一直循环下去) ------------循环中引入条件判断,if单元格姓名与汇总的哪个姓名一致,就把它的分数加到汇总的哪个分数中 【】需要注意do while 里面的k需要单独调增 |
| 姓名可能出现多空格情况,则应该进行数据的清洗,加上trim或ucase、lcase |
![]() |








浙公网安备 33010602011771号