分享

VBA笔记:Range对象

 阿白mvo3hep7cv 2020-07-21

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插入数值100End Sub
通过名称引用
Sub rng()    Range('date').Value = 10  '提前定义名称 date = A1:B10End 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.SelectEnd 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')

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多