Excel VBA工作薄 7.2批量新增工作表在升级 指定位置拒绝凌乱

前景提要

昨天我们学习了如何通过VBA代码批量新增做个工作表的操作,通过简单的代码,我们能够一次性增加很多个工作表,避免了频繁通过鼠标去单击添加按钮的麻烦,但是我们也注意到了,我们新增加的工作表都是展示在当前工作表的前面的

这明显不符合我们的使用习惯,我们的习惯都是从左到右排列,那么能否限制批量新增工作表的位置呢?

这是我们上一节遗留下来的悬念,我们今天来解决下这个问题,完善我们的代码模块

场景模拟

依然还是拿现在正在进行的NBA的季后赛来说事吧,我们已经成功的按照我们的需要做好了西部首轮的对决和最终获胜的球队,那么我们现在要做西部次轮的对决情况的表了,按照事情发展的顺序,新增加的工作表应该是在我们当前这个工作表的右边

我们上节的代码明显只是增加到了左边,我们来上试下增加到右边看看

代码区

Sub adds()Dim num&, i&, sth As WorksheetSet sth = ActiveSheetnum = Application.InputBox("请问需要增加几个工作表", "确定增加数量", , , , , , 1)For i = 1 To num Worksheets.Add after:=sthNext iEnd Sub

相对于上一次的代码,我们好像增加了一点点,来看看效果

先输入需要创建多少个新的工作表

假设我们要创建2个,暂时先把西部的季后赛三轮的情况弄好

好,我们成功的新增了两个工作表,并且位置实在当前工作表的后面,这样我们按照顺序操作就简单了很多了,也不用将前面的工作表拖到后面去使用了。

当然

代码分析

今天的代码和昨天整体看起来几乎都是一样的,就是新增那一句话,有点不同,没错今天的关键代码就在这里

Worksheets.Add after:=sth

Worksheets.Add,我们昨天已经学习了,是新增工作表的意思,那么新增的工作表放到哪里呢?不选择的话,就是默认放到活动工作表之前,就是之前的样子

但是我们今天明显是要改变这样的不合理布局的,我们我们增加一句话

after:=sth

看字面意思就能够理解了,在sth这个工作表之后,sth这个工作表我们前面已经说明,指向就是西部季后赛首轮这个工作表了

Set sth = ActiveSheet

所以每一次新增工作表都是在sth这个工作表的后面,所以有小伙伴们会留意到sheet5,sheet4的顺序是颠倒的,因为我们仅仅是指定了新增的位置必须是西部季后赛首轮的后面,当新增了工作表sheet4之后,再次执行新增的时候,又会在最靠近sth这个工作表的地方在新增一个工作表,也就是sheet5,

但是如果如果不希望出现这样的情况,既然批量新增,也就按照顺序新增,那我们来改下代码

Sub adds()Dim num&, i&, sth As Worksheetnum = Application.InputBox("请问需要增加几个工作表", "确定增加数量", , , , , , 1)For i = 1 To num Worksheets.Add after:=ActiveSheetNext iEnd Sub

留意两次代码中的不同,这一次选择的参照物是当前的活动工作表,并不再是指定西部季后赛首轮这个工作表了

(0)

相关推荐