Excel VBA 用CurrentRegion屬性快速確定自已的地盤(excel函數(shù)公式大全)
在清朝初期,入關(guān)的八旗子弟通過(guò)騎馬來(lái)圈定自已所屬的土地,稱為“跑馬圈地”,但這種恃強(qiáng)凌弱的行為極大地激發(fā)了滿漢之間的矛盾,后來(lái)清政府制止了這種霸道無(wú)理的行為。
在Excel中,用不著這么麻煩,任一單元格所在區(qū)域能很快地確定下來(lái),只要這一區(qū)域周邊被空行和空列所包圍著,并且也不會(huì)激發(fā)任何的矛盾,用戶也非常喜歡這樣的做法。
如果在工作表中直接操作,就是在當(dāng)前單元格位于單元格區(qū)域中的任一單元格時(shí),按下Ctrl+Shift+* 組合鍵,即可快速選擇整個(gè)單元格區(qū)域,如下圖所示。
在VBA中,起到相同作用的是Range對(duì)象的CurrentRegion屬性。仍以上圖所示的工作表為例,運(yùn)行下面的代碼:
Range("B2").CurrentRegion.Select
同樣會(huì)選擇單元格區(qū)域B2:D6。
正如上面所說(shuō)的,當(dāng)前單元格不一定是單元格B2,該區(qū)域中任意單元格都行,例如,下面的代碼:
Range("C3").CurrentRegion.Select
也會(huì)選擇單元格區(qū)域B2:D6。
由上可知,CurrentRegion屬性返回代表當(dāng)前區(qū)域的Range對(duì)象。當(dāng)前區(qū)域是指包含有當(dāng)前單元格的由空行和空列圍繞組成的區(qū)域。在該區(qū)域中,必須保證區(qū)域中的每一行或列中至少有一個(gè)存在數(shù)據(jù)的單元格。
但是,該屬性在受保護(hù)的工作表中無(wú)效。
如上圖所示的工作表。
1、若單元格B2或者C3是當(dāng)前單元格,那么下面的代碼:
ActiveCell.CurrentRegion.Select
也會(huì)選擇單元格區(qū)域B2:D6。
2、下面的代碼:
Sub CurrentRegionTest1()
Dim rng As Range '聲明對(duì)象變量
'將當(dāng)前單元格區(qū)域賦值給變量
Set rng =Range("B2").CurrentRegion
'顯示信息
MsgBox "當(dāng)前單元格區(qū)域共有" &rng.Rows.Count & "行," & _
rng.Columns.Count & "列" &vbCrLf & _
"當(dāng)前單元格區(qū)域在第"& rng.Row & "行,第" & _
rng.Column & "列開始"
End Sub
運(yùn)行后,會(huì)彈出如下圖所示的消息框,顯示當(dāng)前單元格區(qū)域的一些信息。
試試看,如果選擇緊鄰單元格區(qū)域的行列中的單元格為當(dāng)前單元格,再運(yùn)行CurrentRegion屬性,所獲得的區(qū)域?qū)搯卧袼诘男谢蛄校幢悻F(xiàn)在該單元格所在的行或列為空。
下面的示例工作表如下圖所示,看看下面的代碼:
Sub CurrentRegionTest2()
Dim rng As Range '聲明對(duì)象變量
'將當(dāng)前單元格區(qū)域賦值給變量
Set rng =Range("B1").CurrentRegion
'選擇當(dāng)前單元格區(qū)域除第1行以外的區(qū)域
rng.Offset(1, 0).Resize(rng.Rows.Count - 1,rng.Columns.Count).Select
End Sub
運(yùn)行代碼后,將選擇當(dāng)前區(qū)域中除標(biāo)題行以外的單元格區(qū)域,如下圖所示。
如上圖所示的工作表,下面的代碼設(shè)置當(dāng)前單元格區(qū)域的偶數(shù)行的背景色為紅色:
Sub CurrentRegionTest3()
Dim rng As Range '聲明對(duì)象變量
Dim rngRow As Range '聲明計(jì)數(shù)變量
'將當(dāng)前單元格區(qū)域賦值給變量
Set rng =Range("B1").CurrentRegion
'選擇當(dāng)前單元格區(qū)域除第1行以外的區(qū)域
For Each rngRow In rng.Rows
'如果為偶數(shù)行,則將其背景色設(shè)置為紅色
If rngRow.Row Mod 2 = 0 Then
rngRow.Interior.ColorIndex = 3
End If
Next rngRow
End Sub
運(yùn)行代碼后的結(jié)果如下圖所示。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。