手机版

将合格的excel数据分别复制到其他工作表中

时间:2021-09-19 来源:互联网 编辑:宝哥软件园 浏览:

之前也经常遇到类似的问题,我的解决技巧非常高效,在这里和大家分享一下。

在下面显示的工作表中,从数据库下载的所有数据都存储在主工作表的MASTER中。现在,根据E列的数据,前12列的数据应该复制到其他工作表中,其中E列前两位数字为61的前12列单元格的数据复制到工作表61中,第一位数字为62的前12列单元格的数据复制到工作表62中,同样,第一位数字为63的单元格复制到工作表63中,第一位数字为64或65的单元格复制到第一位数字为64_65的工作表中。

用于完成上述工作的VBA代码如下:

子主数据表()

Dim x

模糊如龙

昏暗如龙

Dim i61为整数

将i62调成整数

将i63调成整数

Dim i6465为整数

将i68调成整数

选择前12列数据并将其分配给数组。

x=Sheet1。单元格(1)。当前区域。调整大小(,12)

重新定义数组大小。

ReDim数据61(1至UBound(x,1),1至12)

ReDim数据62(1至UBound(x,1),1至12)

ReDim数据63(1至UBound(x,1),1至12)

ReDim Data6465(1至UBound(x,1),1至12)

ReDim数据68(1至UBound(x,1),1至12)

遍历数据并将符合条件的数据存储在相应数组的第5列中。

对于i=2至UBound(x,1)

选择左(x(i,5),2)

案例61

i61=i61 1

对于ii=1到12

Data61(i61,ii)=x(i,ii)

然后

案例62

i62=i62 1

对于ii=1到12

Data62(i62,ii)=x(i,ii)

然后

案例63

i63=i63 1

对于ii=1到12

Data63(i63,ii)=x(i,ii)

然后

第64、65号案件

i6465=i6465 1

对于ii=1到12

Data6465(i6465,ii)=x(i,ii)

然后

案例68

i68=i68 1

对于ii=1到12

Data68(i68,ii)=x(i,ii)

然后

结束选择

然后

关闭屏幕更新。

申请。屏幕更新=假

更新工作表61中的数据。

带有数据表(“61”)。细胞(1)。当前区域

清除原始内容,除了标题行。偏移量(1)。调整大小(. Rows.Count,12)。ClearContents

输入单元格A2中的数据。

.家长[A2]。调整大小(UBound(数据61,1),12)=数据61

以…结尾

更新工作表62中的数据。

带有数据表(“62”)。细胞(1)。当前区域。偏移量(1)。调整大小(. Rows.Count,12)。ClearContents

.家长[A2]。调整大小(UBound(数据62,1),12)=数据62

以…结尾

更新工作表63中的数据。

带有数据表(“63”)。细胞(1)。当前区域。偏移量(1)。调整大小(. Rows.Count,12)。ClearContents

.家长[A2]。调整大小(UBound(数据63,1),12)=数据63

以…结尾

更新工作表64和65中的数据。

带有表格(“64_65”)。细胞(1)。当前区域。偏移量(1)。调整大小(. Rows.Count,12)。ClearContents

.家长[A2]。调整大小(UBound(Data6465,1),12)=Data6465

以…结尾

更新工作表68中的数据。

带有数据表(“68”)。细胞(1)。当前区域。偏移量(1)。调整大小(. Rows.Count,12)。ClearContents

.家长[A2]。调整大小(UBound(数据68,1),12)=数据68

以…结尾

打开屏幕更新。

申请。屏幕更新=真

提示用户更新数据已完成。

MsgBox“所有工作表都已更新!”,64,“已完成”。

末端接头

运行代码后,工作表61中的数据如下。

代码不难,很实用!在代码中,我给出了一些注释,有助于理解代码。就个人而言,该代码的优势在于:

将数据存储在数组中,并从数组中检索相应的数据。

将数组数据直接输入工作表单元格,提高了代码的简单性和效率。

通过适当地修改代码,类似的需求可以很容易地实现。

版权声明:将合格的excel数据分别复制到其他工作表中是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。