分享

(跟老谭学Excel VBA)第6课_拆分工作表

 L罗乐 2017-02-06

有这样一张“学生”表,总行数大概2万行。现在需要将这些数据按照班级单独存放。比如“物教1班”的所有信息要有一张单独的“物教1班”表来保存,“人文99班”的所有信息要有一张单独的“人文99班”表来保存。



1、思路框架


由于数据有上万行,每一行的班级都不同,所以必须在一个循环结构中来完成。i从第2行开始,取到数据表的最后一行,每取一行,就把“绿色注释”的操作进行一遍


2、判断指定名称的工作表是否存在

这个框架中,“如何判断指定名称的工作表是否存在”是一个新的要点。方法有很多,这里老谭给大家介绍效率最高的一种:错误捕捉。

看下面2行代码:


很简单对吗?就是把“成都”工作表赋值给对象变量sht,结果报错了。一开始老谭就截图给大家看过了,整个工作簿里只有“学生”表,并没有一个叫“成都”的工作表,所以赋值失败,报错了

但是,我们如果加一行代码的话,可以让它不报错,继续往下执行。


看到了吗?“成都”表依然不存在,但是MsgBox能顺利提示消息。难道这里没有出错?再看一个对比实例:


左右两边代码唯一不同是赋值的工作表不一样。“成都”不存在,输出的Err.Number=9,“学生”是存在的,输出了Err.Number=0

在VBA中,Err.Number叫做“错误编号”,我们不用深究它的具体意义,只需记住一句话:Err.Number=0表示没出错,Err.Number<>0表示出错。

结合工作表的赋值操作报错还是不报错,我们反过来思考一下,可以得出结论:Set sht = Worksheets('成都'),类似这样的赋值操作,如果Err.Number<>0(出错)表示该工作表不存在,Err.Number=0(没出错)表示该工作表存在。那么,下面这段代码应该不用多解释了。



3、完整代码



4、执行效果



Excel VBA的学习是一个比较辛苦的过程,建议初学者从模仿开始,多动手敲代码,能把老谭的代码从抄写到自己敲出来,说明你就已经上升到另一个台阶了,加油。

老谭的网络视频课程,系统、详细讲解,感兴趣的扫码开学!



喜欢老谭讲解的小伙伴多多点赞、多多推荐关注!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多