VBA|已使用区域、当前区域及按行、列自定义的非空区域

小智雅汇 2019-03-03 17:16:41

UsedRange和CurrentRegion(不区分大小写)是应用非常频繁的两个属性,Usedrange是工作表的属性,即其使用时应该是sheets(1).usedrange、sheets(2).usedrange这种形式,而currentregion是单元格的属性,即其使用应该是range("A1").currentregion或cells(1,1).CurrentRegion这种形式。

先从字面意思上来看,usedrange就是已经使用的区域的意思,也就是说sheet1.usedrange表示的是sheet1表格中已经使用的区域,怎么理解这个已经使用的区域呢?已经使用的区域就是指鼠标从整个表格最左上角的那个非空单元格一直拖动到整个表格最右下角的那个已经使用过的单元格所选择的区域。而CurrentRegion的字面意思就是当前区域,那个range("A1").currentregion就是指A1单元格当前所在的那个区域,在这里当前所在的区域就是指当前单元格所在的以空行和空列隔开的区域。

如果想以某行、某列为基准来选择其非空区域,可以使用单元格的end属性。

如以下小实例即可对按第一行、第一列定义的非空区域设置单元格边框属性为xlHairline

Sub allHairline()

Dim Lrow, Lcol As Integer

Lrow = Range("A" & Rows.Count).End(xlUp).Row

Lcol = Cells(1, Columns.Count).End(xlToLeft).Column

Dim str As String

str = Cells(Lrow, Lcol).Address '$AB$17

Dim j As Integer

j = InStrRev(str, "$") '最后出现位置

'str = Left(str, j - 1)

'str = Right(str, Len(str) - 1)

str = Mid(str, 1, j - 1)

Cells.Select

Selection.Borders.LineStyle = xlNone

Range("A1:" & str & Lrow).Select

Selection.Borders.Weight = xlHairline

End Sub

-End-

本页共23段,1049个字符,1768 Byte(字节)