vba 位 前 相似 筛选_VBA——操作单元格对象2

VBA

•操作单元格对象

6636eda71e953eebde964ab5c6a98fb6.png

将数据拆分到多表

在工作中我们经常要将同一类别的数据单独放到同一张表格中,对于这种重复性的工作用VBA可以节省很多的时间,现在我们就用部门数据来举例,接下来就让我们来学习这个神奇的技能吧!

d08a42ca5c929dcb51529bf0737ebfd2.png

纸上谈兵

在进行VBA编程前我们首先要先理一下思路,现在就让我们来想想这个操作应该怎样进行。

首先,在我们看到部门名称为"一车间"的数据时,我们会复制该行的数据,粘贴到"一车间"这个表格的最后一行数据上,以此类推其他部门的操作方法。

会用到的函数

在进行上述的纸上谈兵之后,我们可以知道我们用到的函数除了之前我们学过的for循环和copy之外,这次还要学会其他一些选取单元格的方法,如End (xlUp)、EntireRow、row和Value。

End (xlUp)

End(xlUp)表示向上检测非空单元格数据,如图所示,当我们输入代码range("a25").End(xlUp).select时,会选中a20单元格,因为a20单元格为向上取不为空的单元格。

14014ec61cc8547d3121324f4bb329b1.png

EntireRow和Row

EntireRow表示单元格所在行,如图所示,当我们输入代码range("a25").EntireRow.select时,会选中a25单元格的整行。当我们输入Range("c1") = Range("a25").EntireRow.Row,可以把a25所在单元格的行数输出到c1中,如图所示,值为25。

45e6ba0bc87ad074e25c5f8e4bcfba40.png

Value

Value可以用来表示单元格的值,一般我们在使用range时都不会加Value,因为系统默认参数为Value,但在有些情况下却必须加上Value,否则会出现错误。

如下情况,如果我们输入的是Sheets(Range("d1")).Select,没有加Value就会出现类型不匹配,因为sheets不知道range("d1")是什么。

425a459109abcaff96fac17450f753a6.png

当我们加入Value后,代码改为Sheets(Range("d1").Value).Select后,就会运行正常了。

9057f9efe48e4979644027ca70bb529c.png

代码编写

在了解上述内容之后我们就开始编写我们的代码了。

因为.xls格式只有65535行数据,因此代码Sheet1.Range("a65535").End(xlUp)表示的一定是最后那行数据所在的行数,根据上述图表,我们应该是从第二行开始循环,因此在定义了数值类型后我们可以输入For i = 2 To Sheet1.Range("a65535").End(xlUp).Row来表示循环所有的数据。

j = Sheets(Sheet1.Range("d" & i).Value).Range("a65535").End(xlUp).Row + 1用来表示选取的数据对应的部门之后,查找这个部门所在表格的最后+1行,并将这个数据赋值给j。

Sheet1.Range("a" & i).EntireRow.Copy Sheets(Sheet1.Range("d" & i).Value).Range("a" & j)表示将选取的数据复制到对应部门表格的最后一行。

完整的代码如下图所示:

84cf57afb6bf908f661996f892962436.png

思考讨论

上述操作虽然也可以进行数据的整理,但效率未免太低了,而且与我们平时的工作习惯不符合,正常工作的时我们也不可能这样一条一条的复制数据,然后进行粘贴,我们一般会筛选出同一个部门,然后全选复制到新的工作格中,因此我们最快的方法应该是筛选,而筛选操作大家可以试着用录制宏查看宏的方法来自学这个技能,筛选我们在下篇文章中会告诉大家,敬请期待!

——   THE END   ——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值