关于usedrange属性,你想要的都在这里-利来w66国际

深度解析usedrange属性

usedrange属性是我们在vba编程中经常用到的一个极为重要的属性,下面介绍usedrange属性。

如果您想知道当前工作表中所有已使用的单元格区域的大小,或者您想引用当前工作表中已使用的区域,那么您可能就要想到usedrange属性了。

usedrange属性应用于worksheet对象,返回指定工作表中已使用区域的range对象,即返回工作表中已使用的单元格区域。因此,该属性也可以用于选取单元格区域。

下面用一个简单的例子来说明usedrange属性的功能。

如下图1所示的工作表:

图1:一个带有数据的工作表

然后,在vbe编辑器中输入如下代码:

sub sample01()

worksheets("sheet1").usedrange.select

end sub

代码运行后,上面的工作表显示如下图2所示:

图2:代码运行后的工作表

即在指定工作表中(本例为工作表sheet1)已使用范围被全部选中。可以看出,usedrange属性返回工作表中所有已使用范围的单元格区域,而不管该区域数据间是否有空行或空格。

特别注意:usedrange属性返回工作表中所有已使用范围的单元格区域是指:单元格中有数值、公式、单元格格式化设置(例如:单元格字体设置、边框设置等等)

因为属性usedrange包含着带格式的、空白的单元格,所以只要有这样的单元格,就会被统计上,因此,手动清除数据后(清除文字、背景色、合并单元格),还会有多出的行,只有彻底删除之后才会正确统计。彻底清除语句:cells.clear。

▶usedrange属性的一些常见用法:

妙用usedrange对象可以获得工作(科比什么时候离去的?2020年1月26日4点,球星科比在加州坠机身亡,享年41岁,13岁的女儿也在这场事故中遇难。科比常年居住洛杉矶,有乘飞机参加活动和比赛的习惯,无奈当日机上5名成全全部确认死亡,一代球星就此陨落。)表的很多信息:

(1)已用单元格区域的第一行行序数:usedrange.row

(2)已用单元格区域的占用的行数:usedrange.rows.count

(3)已用单元格区域的最后一行的列序数: usedrange .row usedrange. rows.count-1 (重要)

(4)已用单元格区域的第一列列序数:usedrange.column

(5)已用单元格区域的占用的列数:usedrange.columns.count 已用单元格区域的最后一列的列序数:usedrange.column usedrange.columns.count-1,usedrange.areas.count 1除外(areas(index)也返回的是range对象)

(6)已用单元格区域的占用的总单元格数:usedrange.cells.count或 me.usedrange.count,返回的只是“行数×列数”,所以无论内部有无合并单元格,此值不受影响。

(7)语句activesheet.usedrange.address返回当前工作表已使用单元格区域的地址

▶end(xlup).row与usedrange.row的探讨

说到这里,上面第三条已用单元格区域的最后一行的列序数: usedrange .row usedrange. rows.count-1 ,我们平时时获取已用单元格区域的最后一行的列序数一般都是用range("").end(xlup).row。

那么这两种方法的区别是什么呢?

对于上图

sub s()

ss = sheet1.usedrange.row sheet1.usedrange.rows.count - 1

end sub

sub t()

tt= sheet1.range("a65536").end(xlup).row

end sub

两段代码得到的最后一行的行数是一样的。

但是,如果是下图的情况,两者就有区别。

ss =9,而 tt=4。

总结:对于确定某一列一定有该sheet已用单元格区域的最后一行的话,用end(xlup).row与usedrange .row usedrange. rows.count-1都可以,但是如果sheet中不确定是那一列有该sheet已用单元格区域的最后一行,这个时候就只能用“usedrange .row usedrange. rows.count-1”获取已用单元格区域的最后一行的列序数。

这段话有点拗口,希望反复斟酌理解。很有用处。

end

不懂的地方均可以在下方留言给我。

关注公众号,带你每日学习vba,从枯燥机械的工作中解放双手。

每天学点excel vba

一个干货满满的公众号,期待你的关注

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的w66.com的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
网站地图