1.單元格
1.1 單個單元格
Worksheets('Sheet1').Range('A1').Value = 10
1.2 單元格區(qū)域
直接引用與通過變量引用
Sub rng() Range('A1:A10').Value = 10 '在A1:A10插入數(shù)值10 Dim n As String n = 'B1:B10' Range(n) = 100 '在B1:B10插入數(shù)值100End Sub
通過名稱引用
Sub rng() Range('date').Value = 10 '提前定義名稱 date = A1:B10End Sub
1.3 跨區(qū)域引用
同時選擇多個區(qū)域
Sub rng() Range('A1:A10,A4:E6,C3:D9').Select '逗號分隔End Sub
選擇多個區(qū)域的交集
Sub rng() Range('A1:A10 A4:E6').Select '空格分隔End Sub
包含2個區(qū)域的最小矩形區(qū)域
Sub rng() Range('A1:A10','B4:E6').Select '效果與'A1:E10'一樣End Sub
2.Cells屬性
作為Range的屬性
Range('B3:F9').Cells(2,3) = 100 '為B3:F9區(qū)域第2行、第3列的單元格賦值100
作為Range的參數(shù)
Range(Cells(1,1),Cells(10,5)).Select '2個表達式,意義是一樣的
Range('A1','E10').Select
3.Rows、Columns對象
與Range對象有點不同,Rows和Columns是直接引用工作表、區(qū)域的指定行、列
Rows('3:10').Rows(1).Select '選中第3行到第10行區(qū)域中的第1行
Columns('B:G').Columns(3).Select '選中第3行到第10行區(qū)域中的第1行
4.Union方法
將多個單元格區(qū)域粘在一起,并同時對其進行操作
案例:選中A1:F14區(qū)域中,所有數(shù)值與A1相同的單元格
Sub Rnge5() Dim myRng As Range, n As Range Set myRng = Range('A1') For Each n In Range('A1:E14') If n.Value = Range('A1').Value Then Set myRng = Union(myRng, n) End If Next myRng.SelectEnd Sub
5.Offset屬性
與同名Excel函數(shù)的原理一樣
Range('A1').offset(2,3).Value = 100 '往下走2行、往右走3列
6.Resize屬性
以目標(biāo)單元格區(qū)域為對象,將范圍擴大或縮小到指定范圍
Range('A1').Resize(5,4).Select '放大到 5行x4列
Range('B1:H10').Resize(2,1).Select '縮小到 2x1
7.UsedRange屬性
返回包含所有已使用單元格的矩形區(qū)域
比如,表里就A1和C10有數(shù)據(jù),那么返回數(shù)據(jù)為 A1:C10
8.End屬性
作用相當(dāng)于在Excel里使用 Ctrl+方向鍵,需要配合'方向'參數(shù)使用
語句格式
Range('C5').End(xlUp).Select
參數(shù)說明
| 參數(shù) | 說明 |
|---|
| xlToLeft | 向左移動 |
| xlToRight | 向右移動 |
| xlUp | 向上移動 |
| xlDown | 向下移動 |
案例:在數(shù)列的最后一格后邊插入1個1~100的隨機整數(shù)
Sub Rnge6() Range('A65536').End(xlUp).Offset(1, 0).Value = Int(Rnd() * 100)End Sub
9.Value屬性
Value 是Range的默認(rèn)屬性,在賦值時,可以被省略
Range('B1:H10').Value = 100 '兩者的意義是一樣的
Range('B1') = 100
10.Count屬性
Count可以計算區(qū)域里一共包含多少單元格
Range('B1:H10').Count
加上Rows和Columns,可以看縱、橫的格數(shù)
Range('B1:H10').Rows.Count
Range('B1:H10').Columns.Count
11.復(fù)制粘貼
復(fù)制B1的數(shù)據(jù),并粘貼到C1
Range('B1').Copy Range('C1')
跨工作表粘貼
Worksheets('Sheet1').Range('B1:B10').Copy Worksheets('Sheet2').Range('C1:C10')