屬性
可用Range(arg)(其中arg為區域名稱)來返回代表單個單元格或單元格區域的Range對象。下例将單元格A1中的值賦給單元格A5。
Worksheets("Sheet1").Range("A5").Value=Worksheets("Sheet1").Range("A1").Value
下例設置單元格區域A1:H8中每個單元格的公式,用随機數填充該區域。在沒有對象識别符(句号左邊的對象)的情況下,使用Range屬性将返回活動表上的一個區域。如果活動表不是工作表,則該方法無效。在沒有明确的對象識别符的情況下,使用Range屬性之前,可用Activate方法來激活工作表。
Worksheets("Sheet1").Activate
Range("A1:H8").Formula="=Rand()"'Rangeisontheactivesheet
下例清除區域Criteria中的内容。
Worksheets⑴.Range("Criteria").ClearContents
如果用文本參數指定區域地址,必須以A1樣式記号指定該地址(不能用R1C1樣式記号)。
Cells屬性
可用Cells(row,column)(其中row為行号,column為列标)返回單個單元格。下例将單元格A1賦值為24。
Worksheets⑴.Cells(1,1).Value=24
下例設置單元格A2的公式。
ActiveSheet.Cells(2,1).Formula="=Sum(B1:B5)"
雖然也可用Range("A1")返回單元格A1,但有時用Cells屬性更為方便,因為對行或列使用變量。下例在Sheet1上創建行号和列标。注意,當工作表激活以後,使用Cells屬性時不必明确聲明工作表(它将返回活動工作表上的單元格)。
SubSetUpTable()
Worksheets("Sheet1").Activate
ForTheYear=1To5
Cells(1,TheYear+1).Value=1990+TheYear
NextTheYear
ForTheQuarter=1To4
Cells(TheQuarter+1,1).Value="Q"&TheQuarter
NextTheQuarter
EndSub
雖然可用VisualBasic字符串函數轉換A1樣式引用,但使用Cells(1,1)記号更為簡便(而且也是更好的編程習慣)。
可用expression.Cells(row,column)返回區域中的一部分,其中expression是返回Range對象的表達式,row和column為相對于該區域左上角的偏移量。下例設置單元格C5中的公式。
Worksheets⑴.Range("C5:C10").Cells(1,1).Formula="=Rand()"
和Cells
可用Range(cell1,cell2)返回一個Range對象,其中cell1和cell2為指定起始和終止位置的Range對象。下例設置單元格區域A1:J10的邊框線條的樣式。
WithWorksheets⑴
.Range(.Cells(1,1),.Cells(10,10)).Borders.LineStyle=xlThick
EndWith
注意每個Cells屬性之前的句點。如果前導的With語句應用于該Cells屬性,那麼這些句點就是必需的。本示例中,句點指示單元格處于第一張工作表上。如果沒有句點,Cells屬性将返回活動工作表上的單元格。
Offset屬性
可用Offset(row,column)(其中row和column為行偏移量和列偏移量)返回相對于另一區域在指定偏移量處的區域。下例選定位于當前選定區域左上角單元格的向下三行且向右一列處的單元格。由于必須選定位于活動工作表上的單元格,因此必須先激活工作表。
Worksheets("Sheet1").Activate
'Can'tselectunlessthesheetisactive
Selection.Offset(3,1).Range("A1").Select
Union方法
可用Union(range1,range2,...)返回多塊區域,即該區域由兩個或多個連續的單元格區域所組成。下例創建由單元格區域A1:B2和C3:D4組合定義的對象,然後選定該定義區域。
Dimr1AsRange,r2AsRange,myMultiAreaRangeAsRange
Worksheets("sheet1").Activate
Setr1=Range("A1:B2")
Setr2=Range("C3:D4")
SetmyMultiAreaRange=Union(r1,r2)
myMultiAreaRange.Select
使用包含若幹塊的選定區域時,Areas屬性很有用。它将一個多塊選定區域分割為單個的Range對象,然後将這些對象作為一個集合返回。使用返回的集合的Count屬性可檢測一個選定區域是否包含多塊區域,如下例所示。
SubNoMultiAreaSelection()
NumberOfSelectedAreas=Selection.Areas.Count
IfNumberOfSelectedAreas>1Then
MsgBox"Youcannotcarryoutthiscommand"&_
"onmulti-areaselections"
EndIf
EndSub
舉例
例子1
print_r($number);
>
輸出:
Array([0]=>0[1]=>1[2]=>2[3]=>3[4]=>4[5]==5)
例子2
print_r($number);
>
輸出:
Array([0]=>0[1]=>10[2]=>20[3]=>30[4]=>40[5]=>50)
例子3
print_r($letter);
>
輸出:
Array([0]=>a[1]=>b[2]=>c[3]=>d)