打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于UsedRange属性,你想要的都在这里
userphoto

2020.04.07

关注

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对象可以获得工作表的很多信息: 

(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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
(13) 查找最后单元格End()移动,Find()查找,UsedRange()已使用,CurrentRegion()扩展
End属性&查找最后的单元格方法总结
8、【WPS JS】批量汇总工作簿中的工作表
Range单元格对象常用属性(二)
[VBA教学3.27]最后的单元格方法汇总
Excel中VBA编程学习笔记(十)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服