一键搞定!根据总表生成多个分表,根据分表生成目录

点击上方蓝字
「Excel不加班」
关注

看下一篇



一键搞定!根据总表生成多个分表,根据分表生成目录
文章图片


恭喜下面3个粉丝:小凤、帘卷西风、郑添元
, 获得书籍 , 加卢子微信chenxilu2019
, 发送姓名 , 电话 , 地址 。

为了活跃气氛 ,
在文末点亮“在看”+评论区留言 , 我会从中抽取3名粉丝 , 每人赠送一本《Excel效率手册 早做完 , 不加班》 。


昨天的文章没看的读者要先看:只需用一招 , 就可以学好VBA……



用录制宏加For循环虽然可以生成多个工作表 , 但是命名的规则太土了 , 都是Sheet1、Sheet2……也不好识别 。
一键搞定!根据总表生成多个分表,根据分表生成目录
文章图片


如果能按实际情况命名是不是更好?

比如 , 生成的工作表是1月、2月……12月 。
一键搞定!根据总表生成多个分表,根据分表生成目录
文章图片


其实 , 要实现这种很简单 , 只要知道一个新单词Sheets(i).Name
, 这个就是工作表的名称 , 里面的i就是变量 , 1到12 。 i & "月"就是在数字后面连接一个月字 , 也就是1月到12月 , 其实跟在单元格的用法是一样的 。
Sub 生成工作表()
For i = 1 To 12
Sheets.Add After:=ActiveSheet
Sheets(i + 1).Name = i & "月"
Next
End Sub

i & "月"也可以直接调用单元格的值 , 单元格用Range("b" & i)
, 就是b1到b12 。 现在要根据总表 , 也就是第一张工作表生成分表 , 需要在单元格前面指定工作表序号或者名称 , 也就是Sheets(1).Range("b" & i)


其实 , VBA跟在单元格写入公式的操作有点类似 , 都以=(等号)去连接后面需要显示的字符 , 单元格是=A1&"月" , 而VBA是=i & "月" , 基本差异很小 。

跨表引用也是类似的 , 只是将原来你连接共工作表的!(感叹号)换成了连接对象的·(点) , VBA=Sheet1.Range("B" & i) ,公式=Sheet1!B1 。 有时我们就是以公式的思路来试试看是否能代入VBA代码使用 。


推荐阅读