如果需要在代碼中直接獲取當前處理單元格所在的整行或整列,以便進行進一步操作,那么就可以使用EntireRow屬性和EntireColumn屬性。
EntireRow屬性返回一個Range對象,代表包含指定單元格的整行。如果指定的單元格處于不同的行,則返回的對象代表所有這些單元格所在的整行。
如下圖所示的工作表,要獲取當前單元格(即C3)所在行的第一個單元格(即A2)中的值。 可以使用下面的代碼: ActiveCell.EntireRow.Cells(1,1).Value 返回值6,即單元格A2中的值。
運行下面的代碼,上圖所示工作表的第1行和第2行的背景色將設置為灰色: Range('A1:A2').EntireRow.Interior.Color= RGB(225, 225, 225) 結果如下圖所示:
EntireColumn屬性與EntireRow屬性相類似,只不過是返回指定單元格所在的整列。
示例:隱藏空行 如果單元格區(qū)域A1:A10中的空單元格與單元格區(qū)域B1:B10中的空單元格在同一行,那么隱藏該行。代碼如下:
Sub testEntireRowOrColumn() Dim rng1 As Range Dim rng2 As Range
'獲取單元格區(qū)域A1:A10中的空單元格 Set rng1 =Range('A1:A10').SpecialCells(xlCellTypeBlanks) '獲取單元格區(qū)域B1:B10中的空單元格對應的列A中的單元格 Set rng2 =Range('B1:B10').SpecialCells(xlCellTypeBlanks).Offset(0, -1)
'如果獲取的單元格有重合,表明該行在這兩列中的單元格均為空 '認為該行為空行,隱藏該行 Intersect(rng1, rng2).EntireRow.Hidden =True End Sub
說明:代碼中的Hidden屬性用于隱藏/顯示行或列。如果設置該屬性為True,則隱藏行或列。指定的單元格區(qū)域必須是整行或整列。也可以獲取該屬性的值,用于判斷對應的行或列是否隱藏,在后面的文章中,我們會介紹這樣的例子。
示例:高亮顯示當前單元格所在的行和列 如下圖所示,會以紅色背景色高亮顯示當前單元格所在的行和列。 代碼如下: Private SubWorksheet_SelectionChange(ByVal Target As Range) '將工作表單元格背景色設置為無填充色 Cells.Interior.ColorIndex = xlNone '設置選取單元格所在行和列的背景色為紅色 With Target .EntireRow.Interior.Color = RGB(255, 0,0) .EntireColumn.Interior.Color = RGB(255,0, 0) End With End Sub
代碼必須位于相應的工作表代碼模塊中(如下圖),利用工作表事件SelectionChange來達到這樣的效果。 |
|