使用UsedRange,可以获得工作表中的单元格内有效值的最后的一行和最后一列。这样我们就可以判断工作表到底使用到哪行和哪列,了解有效数据范围。
UsedRange属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象,即返回工作表中已使用的单元格区域。因此,该属性也可以用于选取单元格区域。
UsedRange属性的一些常见用法
(1) 返回工作表中已使用区域的行数或列数
语句Activesheet.UsedRange.Rows.count返回当前工作表中已使用单元格区域的行数。同样,语句Activesheet.UsedRange.Columns.count返回当前工作表中已使用单元格区域的列数。
UsedRange属性的通用写法为
<在此输入引用对象>.UsedRange.Rows.Count <在此输入引用对象>.UsedRange.Columns.Count。
(2) 返回工作表中已使用单元格区域的地址
语句Activesheet.UsedRange.Address 返回当前工作表已使用单元格区域的地址。
一般写法为<在此输入引用对象>.UsedRange.Address
(3) 设置工作表中已使用单元格区域对象,并进行引用或操作。如下代码所示:
Dim cellRange As Range,RowNum As Long,ColNum As Long
Set cellRange=Worksheets(“Sheet1”).UsedRange ‘设置已用单元格区域并赋值给变量
RowNum=cellRange.Rows.Count ‘已用单元格区域的行数
ColNum=cellRange.Columns.Count ‘已用单元格区域的列数
知识扩展:使用范例
下面一段代码的功能是:在活动工作表已使用单元格区域中,当该区域不包含任何公式时,清除该区域不能打印的字符。
Dim TheCell As Range
For Each TheCell In ActiveSheet.UsedRange
With TheCell
If .HasFormula = False Then
.Value = Application.WorksheetFunction.Clean(.Value)
End If
End With
Next TheCell
其中,ActiveSheet.UsedRange 代表当前工作表中已使用单元格区域组成的Range对象。(By Chip Pearson)
最后再看一段最简单的代码:
Dim lngYCnt As Long
Dim intXCnt As Integer
lngYCnt = Worksheets(Sheet1).UsedRange.Rows.Count
intXCnt = Worksheets(Sheet1).UsedRange.Columns.Count
MsgBox 最后行:intYCnt; 最后列: lngXCnt
通过对话框来提示Sheet1中已使用的最大行和列的范围。