1.单元格
1.1 单个单元格
Worksheets("Sheet1").Range("A1").Value = 10
1.2 单元格区域
直接引用与通过变量引用
Sub rng()
Range("A1:A10").Value = 10 '在A1:A10插入数值10
Dim n As String
n = "B1:B10"
Range(n) = 100 '在B1:B10插入数值100
End Sub
通过名称引用
Sub rng()
Range("date").Value = 10 '提前定义名称 date = A1:B10
End Sub
1.3 跨区域引用
同时选择多个区域
Sub rng()
Range("A1:A10,A4:E6,C3:D9").Select '逗号分隔
End Sub
选择多个区域的交集
Sub rng()
Range("A1:A10 A4:E6").Select '空格分隔
End Sub
包含2个区域的最小矩形区域
Sub rng()
Range("A1:A10","B4:E6").Select '效果与"A1:E10"一样
End Sub
2.Cells属性
作为Range的属性
Range("B3:F9").Cells(2,3) = 100
'为B3:F9区域第2行、第3列的单元格赋值100
作为Range的参数
Range(Cells(1,1),Cells(10,5)).Select
'2个表达式,意义是一样的
Range("A1","E10").Select
3.Rows、Columns对象
与Range对象有点不同,Rows和Columns是直接引用工作表、区域的指定行、列
Rows("3:10").Rows(1).Select
'选中第3行到第10行区域中的第1行
Columns("B:G").Columns(3).Select
'选中第3行到第10行区域中的第1行
4.Union方法
将多个单元格区域粘在一起,并同时对其进行操作
案例:选中A1:F14区域中,所有数值与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.Select
End Sub
5.Offset属性
与同名Excel函数的原理一样
Range("A1").offset(2,3).Value = 100
'往下走2行、往右走3列
6.Resize属性
以目标单元格区域为对象,将范围扩大或缩小到指定范围
Range("A1").Resize(5,4).Select
'放大到 5行x4列
Range("B1:H10").Resize(2,1).Select
'缩小到 2x1
7.UsedRange属性
返回包含所有已使用单元格的矩形区域
比如,表里就A1和C10有数据,那么返回数据为 A1:C10
8.End属性
作用相当于在Excel里使用 Ctrl+方向键,需要配合"方向"参数使用
语句格式
Range("C5").End(xlUp).Select
参数说明
参数 | 说明 |
---|---|
xlToLeft | 向左移动 |
xlToRight | 向右移动 |
xlUp | 向上移动 |
xlDown | 向下移动 |
案例:在数列的最后一格后边插入1个1~100的随机整数
Sub Rnge6()
Range("A65536").End(xlUp).Offset(1, 0).Value = Int(Rnd() * 100)
End Sub
9.Value属性
Value 是Range的默认属性,在赋值时,可以被省略
Range("B1:H10").Value = 100
'两者的意义是一样的
Range("B1") = 100
10.Count属性
Count可以计算区域里一共包含多少单元格
Range("B1:H10").Count
加上Rows和Columns,可以看纵、横的格数
Range("B1:H10").Rows.Count
Range("B1:H10").Columns.Count
11.复制粘贴
复制B1的数据,并粘贴到C1
Range("B1").Copy Range("C1")
跨工作表粘贴
Worksheets("Sheet1").Range("B1:B10").Copy Worksheets("Sheet2").Range("C1:C10")