前言:
而今朋友们对“vb对excel数据进行提取”都比较关心,看官们都需要剖析一些“vb对excel数据进行提取”的相关文章。那么小编在网络上网罗了一些对于“vb对excel数据进行提取””的相关资讯,希望朋友们能喜欢,咱们一起来了解一下吧!徐军泰
当然,一个问题有不同的解法,我在打卡里看到大家说用透视表,但是没看到大家的截图。
我是用VBA实现的,这是一个非常好的可以了解到底什么是VBA的案例:
首先,为了制作这个案例,我需要根据总表中的姓名,快速新建8张工作表,并依次用名字去命名工作表。
我写了如下代码(ALT+11打开VBE,新建模块,在模块中编写代码):
Sub 批量新建工作表()
Dim i
For i = 1 To 8
Worksheets.Add after:=Sheets(Sheets.Count)
Sheets(i + 1).Name = Sheet1.Cells(i + 2, 2)
Next
End Sub
知识点说明:
1、 For……Next,VBA常用循环语句
2、Worksheet.Add,利用工作表的Add方法新建工作表,after指定在哪张表后面新建
3、Sheets.Count,计算当前总共有多少张表
4、Sheets(i + 1).Name = Sheet1.Cells(i + 2, 2),用B列的姓名依次给新的工作表命名
新建好工作表之后 ,用CTRL键全选8张分表,一次性在分表制作一个统计表,如下图:
接下来,就是关键的提取工作了,同样用代码实现:
Sub 提取数据()
Dim rng As Range '定义一个单元格区域类型的变量rng
Set rng = Sheet1.Range("b3:b10") ‘让rng代表B3:B10这个单元格区域
For Each cell In rng '在rng这个区域内逐个单元格进行循环操作
Worksheets(cell.Value).Cells(2, 3) = cell.Value '提取姓名到分表
Worksheets(cell.Value).Cells(3, 3) = cell.Offset(0, 1) '提取第工作量得分
Worksheets(cell.Value).Cells(4, 3) = cell.Offset(0, 2) '提取完成分
Worksheets(cell.Value).Cells(5, 3) = cell.Offset(0, 3) '提取贡献分
Next cell
End Sub
为了方便大家理解每行代码的含义,我在代码后加了注释。
编写好代码之后,我们可以直接在代码上点F5运行,或者指定宏给按钮,就可以一键完成提取了,效果如下:
案例总结:
这个案例中,我们只放了8张分表,实际工作中几十张、几百张表都有可能,这时候VBA的优势就体现出来了。
很多星友可能对VBA还不了解,相比其它Excel功能,VBA确实学起来比较烧脑。初期,建议先从类似这样的案例入手,做到能看懂大概的意思,知道如何改代码就好了。
今年,表格学院计划录制一套VBA的入门课和实战训练营,届时欢迎大家报名学习。
今天的案例,有看不懂的地方,欢迎打卡提问。
————————
每天上班第1件事,上表格星球打卡学Excel
365天,陪伴1天不少~
标签: #vb对excel数据进行提取