Worksheets("sheet1").Range("H2").Value = _ Worksheets("sheet1").Range("A1").CurrentRegion.ListHeaderRows上述代碼在示例工作表中運行后,將返回“1”,即單元格A1所在區域的標題行的行數為1。
(2)返回指定(或活動(dòng))單元格所在區域的行數
Worksheets("sheet1").Range("H3").Value = _ Worksheets("sheet1").Range("A1").CurrentRegion.Rows.Count上述代碼在示例工作表中運行后,將返回“11”,即單元格A1所在區域的行數為11。
(3)返回指定(或活動(dòng))單元格所在區域的列數
Worksheets("sheet1").Range("H4").Value = _ Worksheets("sheet1").Range("A1").CurrentRegion.Columns.Count上述代碼在示例工作表中運行后,將返回“4”,即單元格A1所在區域的列數為4。
(4)返回指定(或活動(dòng))單元格所在區域的單元格數
Worksheets("sheet1").Range("H5").Value = _ Worksheets("sheet1").Range("A1").CurrentRegion.Cells.Count上述代碼在示例工作表中運行后,將返回“44”,即單元格A1所在區域的單元格數為44。
(5)在指定(或活動(dòng))單元格所在區域中選取除標題行以外的數據區域
Worksheets("sheet1").Range("A1").CurrentRegion.Resize( _ Worksheets("sheet1").Range("A1").CurrentRegion.Rows.Count - Worksheets("sheet1"). _ Range("A1").CurrentRegion.ListHeaderRows, Worksheets("sheet1").Range("A1").CurrentRegion. _ Columns.Count).Offset(1, 0).Select上述代碼在示例工作表中運行后,將選取單元格A1所在區域中除標題行外的數據區域,即單元格區域A2:D11。
下面,將上述代碼綜合成一個(gè)完整的示例以演示CurrentRegion屬性的一些用法。程序代碼如下:
Sub testCurrentRegion() Dim rng As Range, ws As Worksheet Set ws = ActiveWorkbook.Worksheets("sheet1") Set rng = ws.Range("A1").CurrentRegion ws.Range("G2") = "當前區域標題行數" ws.Range("H2").Value = rng.ListHeaderRows ws.Range("G3") = "當前區域的行數" ws.Range("H3").Value = rng.Rows.Count ws.Range("G4") = "當前區域的列數" ws.Range("H4").Value = rng.Columns.Count ws.Range("G5").Value = "當前區域的單元格數" ws.Range("H5").Value = rng.Cells.Count ws.Columns("G:G").EntireColumn.AutoFit MsgBox "選取當前區域中除標題行以外的區域" rng.Resize(rng.Rows.Count - rng.ListHeaderRows, rng.Columns.Count).Offset(1, 0).Select End Sub運行后的結果如下圖3所示,示例文檔見(jiàn):
圖3
(6)復制當前區域的數據到另一位置
Sub CopyCurrentRegion() Sheets("sheet1").Range("A1").CurrentRegion.Copy Sheets("sheet2").Range("A1") End Sub上述代碼將工作表Sheet1中單元格A1所在的區域復制到工作表sheet2中以單元格A1開(kāi)始的單元格區域中。
(7)格式化當前區域中的數據
Sub FormatCurrentRegion() With ActiveCell.CurrentRegion .Font.Bold = True .Font.ColorIndex = 3 End With End Sub
上述代碼將工作表中活動(dòng)單元格所在區域數據加粗且設置為紅色。
(8)在當前區域中自動(dòng)套用格式
Sub testAutoFormatCurrentRegion() Worksheets("sheet1").Range("A1").CurrentRegion.AutoFormat End Sub上述代碼將在工作表sheet1中單元格A1所在區域自動(dòng)套用默認的格式,當然,您可以設置所需套用的格式,默認值為xlRangeAutoFormatClassic1。
一些示例
[示例1]在當前區域中查找空白單元格并填充
如下圖4所示的工作表,現在要使用空白單元格上方的有數據的單元格中的數據來(lái)填充空白單元格。
圖4
可以編寫(xiě)如下的代碼:
Sub FillBlankCells() Worksheets("sheet1").Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" Worksheets("sheet1").Range("A1").CurrentRegion.Value = Worksheets("sheet1").Range("A1").CurrentRegion.Value End Sub運行代碼后,工作表中單元格A1所在區域中的空白單元格被相應數據填充,如圖5所示。
圖5
示例下載:
[示例2] 一個(gè)排序的簡(jiǎn)單示例
如圖6所示的工作表,現在對第3列進(jìn)行排序,按降序排列。
圖6
編寫(xiě)的代碼如下:
Sub testSort() Dim rng As Range Set rng = Worksheets("sheet1").Cells(1, 1).CurrentRegion rng.Sort Key1:=rng.Cells(1, 3), Order1:=xlDescending, Header:=xlYes End Sub運行代碼后,工作表中的數據將按照第3列的數據從大到小進(jìn)行排列,如圖7所示。
圖7
示例下載:
小結
1、CurrentRegion屬性的基本語(yǔ)法為:
<單元格對象>.CurrentRegion
2、可以先使用CurrentRegion屬性返回指定單元格或者活動(dòng)單元格所在的區域,然后使用其它的屬性對該區域的數據進(jìn)行操作。
聯(lián)系客服