Excel VBA:按照格式拆分成多个文件。

下面讲解一个案例,是按照格式拆分成多个文件。这个基本需求就是这样。

这是一个数据表,数据表里面每一行是一个学生的信息,但是这一行里面涉及到多个学科。我们要将这个学生信息拆分成多张表,就拆分成这种表语文,你放在语文里面,数学放在数学里面。最后把这几张表同时保存为一个新的文件。

按照学生姓名命名,比如说现在这个是运行结果,就说对应这张表里面。我们可以看一下,它生成AI1到AI9个学生的信息,每人是一个文件。然后其中打开AI1这张表,这是AI1的,也就是说每一个学科都有,并将这个学科信息获取填到这里面。这就是我们的基本需求,拆分成多个文件。

这里面的文件是我们拆分完的,运行之前先删除掉。正常我们是这样,这个下面是空的,我们生成对应文件,就放在程序文件所在路径的文件夹下。我们看一下代码,代码是比较简单。

第一个使用字典,字典对象后期绑定。下面AI2就等于数据表已用区域。这CONARR也是之前讲过,因为要频繁的操作表格,所以这个屏幕刷新属性上面设置为AIA,下面设置为出。

中间这个地方先是我们便利这个程序文件,因为刚开始现在是程序文件,每一张表明如果这个表明不是数据表,就放入字典里面。这个字典里存的表明是最后需要拷贝出来生成文件的对应的表明。下面是对第二列到数据组,最后就有数据的,就这里面到它最大的范围,在一位数字最下面。

这是其实正常来讲一行是一个学生。下面我们就对列进行变例。要注意下列是从第三列开始的,就是学科分数学科分数,正常一个学科就是放一个表格,一个AIIT这种的。

这个地方大家注意做了一个字典的判断,如果不存在这个学科的话,AI接就这个如果不存在这个学科怎么办?

·要新建一张表,把这个学科添加进去,新创表就是星表AIDD,然后是加在第一张表的后面,也就正常在第二张表的位置,这第二星加了表,修改名称就对应的学科。

然后大家注意一下,将AI1到这张表的AI1位置A1第二就是标题,这就是对应里面的标题先把标题拷贝过来,这是默认对应的学科不存在,所以加了这一段如果学科存在。

干什么?要对应的表格添加数据。这里面其实少了个地方,虽然加了个地方,但是大家注意一下少了个地方,因为要添加一个学科。

放到字典里面,不是不报到字典里面了,新学科加了对学生来讲就没有意义了,所以要放到字典里面才能拷贝出去。实际上事先创这些表的学科都已经创建好了,不会有这个学科没有创建的。

下面就对刚才说的数据位置进行拷贝,这是对应的表名学科对应的表,就等于1,就是序号,2就对应的姓名,第二单元格就是对应的学科的名称,对应学科的成绩,A+1就是这里面对应的。这个都比较好对应大家看一下就知道了。

完事之后就会把大家注意一下,这个表格字典里面的单位不是对应,一张表是对应的。除了数据表之外当前文档里面表格,一拷贝之后就生成新文件就带多张表,因为当拷贝完之后对应的工作部变成一个新的工作部,后面不加别的,这个工作部就是激活状态,就activeworkbook,这时候就是保存到录音。这是程序文件所在的路径,路径分割符后面加上对应的学科名称,不对学科名称,学生名称,扩展名,最后关闭这个文件。

这样就实现了对应表格的。像公母就是按表格进行拆分,在这个地方加的这个,因为之前学科都有了,所以不需要加这个避免学科不全,可能这里面表格比这里面要不全,现在把语文给删了,看看能不能加进来。因为现在大家注意一下语文是这样的,加进来看一下。

先执行一个看一下,到这,大家可以看到创建了语文,格式比之前小,这是刚才这面都是放大的,这是新建的,就这样它会现新建一个,执行完,这样就生成。再次打开A一看一下,大家看到A一里面语文就变得比较小,后面数学就是用日前的。还是回来说一下这一段,这一段里面会有什么?这一张表里面只有一个数据表表格后面都没有,那么通过这段代码会把所有的学科对应的表都添加进去。

基本代码就这样,如果大家要下载对应的文档可以来b 站对应视频下面的链接进行下载。