在VBA里,多個單元格的合集我們統(tǒng)稱為Range。Range對象可以包括1到多個單元格,如果只有一個單元格,也可以用cell對象來表示。所以說,cell也是一個特殊的range,可以應(yīng)用Range的方法。 Range的引用所謂引用,大抵可以理解為Range類的一個實例化,也就是上回中說的,給人起名字的過程。實例化是面向?qū)ο笮途幊痰闹匾徊?,也是我們最先要掌握的?/p> 引用Range的方式,常見有以下幾種: cells語句cells用來獲得指定行和列的單元格對象,也就是range對象。 主要的用法為 cells(行號,列號),如cells(1,1)可以得到A1單元格。 直接使用range語句如果想要指定某個區(qū)域,可以直接使用range語句來引用。 引用單元格區(qū)域
Range('a1:b2, c4:d5') 但注意,這種情況下不可以寫成: Range('a1:b2', 'c4:d5') 以上這種寫法會直接選中a1到d5?。?! 引用行和列
Range('1:1')
Range('a:a') 即可。
Range常用屬性下面介紹以下常用的range屬性 currentregion用于選擇某個單元格的當(dāng)前區(qū)域。所謂當(dāng)前區(qū)域就是與當(dāng)前單元格相接的最大范圍。 Range('a1').CurrentRegion.select 注意
rows/columns用于表達range中的行和列。一般結(jié)合count方法使用,后續(xù)會詳細講解。 value表示range的值,非常常用。 end用于表達range在指定方向上的最邊緣的單元格,相當(dāng)于選中該單元格后按ctrl 加 各個方向的箭頭。方向參數(shù)有四個,分別為xlup,xldown,xltoleft和xltoright,代表上下左右。常用的方法如下: Range('a65536').End(xlUp).Row
'獲取最后一行的行數(shù)
Range('iv1').End(xlToLeft).Column
'獲取最后一列的列數(shù) 上面這種寫法,幾乎要成為約定俗成了,但是,由于07版以后的excel的行數(shù)已經(jīng)突破了65536行的限制,這時候怎么辦? 更新的方法如下: ActiveSheet.UsedRange.Rows.Count
'或者
Cells(Rows.Count, 1).End(xlUp).Row
rows.count '可以得到當(dāng)前單元格最后一行,正如之前說的65536 offset/resize對已有range合理地進行位移和調(diào)整維度,而得到的新range。
將目標range在不改變尺寸的情況下進行平移,向各個方向的位移由括號內(nèi)的參數(shù)決定。 Range('a1:b2,c3:d4').offset(1,1)
總結(jié)一下
|
|
來自: L羅樂 > 《跟A哥學(xué)VBA》