将满足条件的excel数据分别复制到其他多个工作表中
发布时间:2022-10-07 04:03:05
以前也经常遇到类似问题,并且其解决技巧很有效率,因此在这里和大家分享。
如下所示的工作表,在主工作表MASTER中存放着从数据库下载的全部数据。现在,要根据列E中的数据将前12列的数据分别复制到其他工作表中,其中,列E中数据开头两位数字是61的单元格所在行前12列数据复制到工作表61中,开头数字是62的单元格所在行前12列数据复制到工作表62中,同样,开头数字是63的复制到工作表63中,开头数字是64或65的复制到工作表64_65中,开头数字是68的复制到工作表68中。
用来完成上述工作的VBA代码如下:
Sub MasterDataToSheets()
Dim x
Dim i As Long
Dim ii As Long
Dim i61 As Integer
Dim i62 As Integer
Dim i63 As Integer
Dim i6465 As Integer
Dim i68 As Integer
‘选择前12列数据并赋给数组
x = Sheet1.Cells(1).CurrentRegion.Resize(,12)
‘重新定义数组大小
ReDim Data61(1 To UBound(x, 1), 1 To 12)
ReDim Data62(1 To UBound(x, 1), 1 To 12)
ReDim Data63(1 To UBound(x, 1), 1 To 12)
ReDim Data6465(1 To UBound(x, 1), 1 To 12)
ReDim Data68(1 To UBound(x, 1), 1 To 12)
‘遍历数据并将第5列符合条件的数据存储到相应的数组中
For i = 2 To UBound(x, 1)
Select Case Left(x(i, 5), 2)
Case 61
i61 = i61 + 1
For ii = 1 To 12
Data61(i61, ii) = x(i, ii)
Next
Case 62
i62 = i62 + 1
For ii = 1 To 12
Data62(i62, ii) = x(i, ii)
Next
Case 63
i63 = i63 + 1
For ii = 1 To 12
Data63(i63, ii) = x(i, ii)
Next
Case 64, 65
i6465 = i6465 + 1
For ii = 1 To 12
Data6465(i6465, ii) = x(i,ii)
Next
Case 68
i68 = i68 + 1
For ii = 1 To 12
Data68(i68, ii) = x(i, ii)
Next
End Select
Next
‘关闭屏幕更新
Application.ScreenUpdating = False
‘更新工作表61中的数据
WithSheets(“61”).Cells(1).CurrentRegion
‘清除原有内容,标题行除外
.Offset(1).Resize(.Rows.Count,12).ClearContents
‘从单元格A2开始输入数据
.Parent.[A2].Resize(UBound(Data61, 1),12) = Data61
End With
‘更新工作表62中的数据
WithSheets(“62”).Cells(1).CurrentRegion
.Offset(1).Resize(.Rows.Count, 12).ClearContents
.Parent.[A2].Resize(UBound(Data62, 1),12) = Data62
End With
‘更新工作表63中的数据
WithSheets(“63”).Cells(1).CurrentRegion
.Offset(1).Resize(.Rows.Count,12).ClearContents
.Parent.[A2].Resize(UBound(Data63, 1), 12)= Data63
End With
‘更新工作表64、65中的数据
WithSheets(“64_65”).Cells(1).CurrentRegion
.Offset(1).Resize(.Rows.Count,12).ClearContents
.Parent.[A2].Resize(UBound(Data6465,1), 12) = Data6465
End With
‘更新工作表68中的数据
WithSheets(“68”).Cells(1).CurrentRegion
.Offset(1).Resize(.Rows.Count,12).ClearContents
.Parent.[A2].Resize(UBound(Data68, 1),12) = Data68
End With
‘开启屏幕更新
Application.ScreenUpdating = True
‘提示用户更新数据已完成
MsgBox “所有工作表都已更新!”, 64, “已完成”
End Sub
运行代码后,工作表61中的数据如下所示。
代码并不难,很实用!在代码中,我已经给出了一些注释,有助于对代码的理解。个人觉得,这段代码的优点在于:
将数据存储在数组中,并从数组中取出相应的数据。
将数组数据直接输入到工作表单元格,提高了代码的简洁性和效率。
将代码适当修改,可以方便地实现类似的需求。


猜你喜欢
- 首先,先来说一些必须要知道的基础操作,很简单,我们在页面中插入一个形状为例,选择设置形状格式,选择线性渐变,分别设置渐变光圈的颜色即可:其次
- 前几天有微软开发者意外的泄露了Windows 11系统,微软再次出面预热所谓的新一代Windows操作系统,阿拉伯数字“11”图形赫然出现在
- win10系统在使用中,出现的蓝屏问题多种多样,让用户防不胜防。比如开机启动蓝屏代码0xc0000428,下面小编给大家分享下解决蓝屏代码0
- 如何给PPT文档加密?有用户不想让他人随意的打开查看并操作自己的PPT文档,因此想要给PPT文档进行加密,那么应该如何操作呢?还不清楚应该如
- 我们总会碰到这样的情况,自己辛苦做的表格发给别人的时候会有数据被篡改的风险,还有有些数据比较机密,得隐藏起来不能被被人看见,这些问题都可以用
- 微软市场营销部门目前向我们确认在Windows 10发布的时候,你将无法购买到预装Windows 10的PC,Dell在一周之前开启了预装W
- 苹果近日更新了 Mac mini 的功耗和热输出 (BTU) 规格,对比 2018 款 Mac mini,搭载 Apple M1 芯片的新版
- 首先可以拖拽产生一年的日期序列,直接拖拽即可。接着我们需要一个辅助列在I列,利用weekday函数,产生表示星期六和星期日的标签。注意看上动
- 1、打开你的wps软件,选中你要放大的字体。打开开始菜单,在字体后面找到“增大字号”功能,反复的点击“增大字号”,几次之后,选中的汉字字体就
- 使用mstsc远程客户端连接远程电脑。输入连接远程的IP地址。成功远程到客户端电脑。 从你的描述分析:你通过mstc远程连接到电脑
- sheet1现在的工作很多时候都会用到excel表格,这样就加快了很多的工作效率。但有时候表格不显示底下sheet1怎么办呢?今天,seo实
- 使用steam平台玩游戏的时候很多小伙伴都需要进行截图但是都不知道steamf12截图保存在哪里,今天就给你们大家带来了steamf12截图
- 我们在使用Win7系统的时候,想设置NVIDIA控制面板,提高电脑性能,使游戏玩的更流畅一些。那么要如何进行设置呢?不清楚的小伙伴就和小编一
- 我们在制作wps表格的时候,一般都需要对单元格格式进行设置,那么,有没有什么比较快捷的方式呢?下面就让小编告诉你怎样快速设置wps表格单元格
- Excel中带有斜杠的单元格具体该如何绘画出来呢?下面是由小编分享的excel表格内画斜杠的教程,以供大家阅读和学习。excel表格内画斜杠
- 很多小伙伴的电脑中都出现了丢失mfc71.dll的情况,针对这一问题今天就给你们带来了mfc71.dll丢失修复方法,如果你也有这个问题就快
- Win7系统浏览网页时提示Error 522怎么办?有用户表示在打开网页时出现Error 522的错误提示窗口,导致网页打开失败,那么遇到这
- win10系统中的edge浏览器虽好用但是兼容性方面令人不大满意,如何设置兼容性,具体又要在哪里进行设置?下面就一起来看看详细方法吧。edg
- 据熟悉Windows 10开发计划的人称,技术预览版、消费者预览版之间会有7个不同版本,Build 9888应该是第四个。需要的朋友可以参考
- Excel中计算公式具体该如何添加呢?下面是小编带来的关于excel中添加计算公式的方法,希望阅读过后对你有所启发!excel中添加计算公式