excel分类汇总总表如何制作,excel如何分类汇总的操作步骤

首页 > 经验 > 作者:YD1662024-03-31 11:24:19

原创作者: 卢子 转自:EXCEL不加班

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

用录制宏加For循环虽然可以生成多个工作表,但是命名的规则太土了,都是Sheet1、Sheet2……也不好识别。

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(1)

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

比如,生成的工作表是1月、2月……12月。

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(2)

其实,要实现这种很简单,只要知道一个新单词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代码使用。

根据b列的内容生成分表的代码就出来了。

Sub 生成工作表()

For i = 1 To 12

Sheets.Add After:=ActiveSheet

Sheets(i 1).Name = Sheets(1).Range("b" & i 1)

Next

End Sub

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(3)

现在反过来,已经有了分表了,要生成目录。

如果你前面的内容已经掌握,那这个问题就太简单了,将代码中间的等式调换过来即可。单元格写在=前面,工作表名称写在=后面。

Sub 提取目录()

For i = 1 To 12

Sheets(1).Range("c" & i 1) = Sheets(i 1).Name

Next

End Sub

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(4)

上面的代码虽然都可以运行,不过如果要写标准的,还需要为i定义变量为整数,Dim i As Integer。

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(5)

有了VBA以后,有些事就会变得更简单,比如填充10000行内容,在单元格内要拉很久。在VBA只需加个循环就可以,瞬间就搞定。

比如现在要在A列生成1-10000的数字。

Sub 生成数字()

Dim i As Integer

For i = 1 To 10000

Sheets(1).Range("a" & i) = i

Next

End Sub

excel分类汇总总表如何制作,excel如何分类汇总的操作步骤(6)

如果你想让工作变得智能化,一键搞定工作,就得用心学习VBA。前期学习会有点难,只要坚持一段时间就会变得很轻松。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.