分享

【VBA初学者教程】- 第一章 VBA入门知识:引用若干单元格区域

 L罗乐 2017-07-25


        使用VBA的过程中,经常会对若干单元格区域进行引用,然后进行批量赋值或设置单元格格式等。如果知道适当的方法可以很容易地同时引用若干单元格区域,可用RangeUnion方法引用任意组合的单元格区域;使用Areas属性可引用工作表上选定的一组单元格区域。


一 使用Range属性


        使用Range属性时,在两个或多个引用之间加上逗号,就可以引用多重区域。下例清除选定工作表上三个单元格区域的内容,代码如下:


Sub one()

    '定义一个对象变量rng

    Dim rng As Range

    '将活动工作表的单元格区域A1:A10,B1:B5,C1:C8赋予该变量

    Set rng = Range('A1:A10,B1:B5,C1:C8')

    '使用该变量代替该区域对象,可以设置字体为斜体或清空单元格内容

    'rng.Font.Italic = True

    rng.ClearContents

End Sub



        上面的代码也可以一行搞定,这里为了为大家演示,如何把单元格区域赋值给变量,以后对变量进行操作即可,没必要写那么冗长的代码了。


        命名区域使用Range属性处理多重区域更为容易,下例同时对自定义名称myRange1和myRange2进行清空内容。


Sub two()

    'myRange1 = Sheet1!$A$1:$F$16

    'myRange2 = Sheet1!$C$20:$E$23

    Range('myRange1, myRange2').ClearContents

End Sub



        设置的自定义名称截图如下:



        如果定义的名称位于不同工作表中,例如myRange1位于Sheet1工作表中,myRange2位于Sheet2工作表中,那么运行如上代码就会提示“运行时错误 '1004'”。



二 使用 Union 方法


        有些时候需要多不连续区域进行批量赋值或设定单元格格式,可以使用Union方法将多个单元格区域组合到一个Range对象中。下例创建了名为myRange的Range对象,并将其定义为单元格区域“A1:F16”和“C20:E23”的组合,然后将该组合区域中的值赋予666,代码如下:


Sub three()

    Dim myRange, myRange1, myRange2 As Range

    Set myRange1 = Range('A1:F16')

    Set myRange2 = Range('C20:E23')

    '连接两个单元格区域,类似按住Ctrl键选择不连续区域

    Set myRange = Union(myRange1, myRange2)

    '赋值为666

    myRange.Value = 666

End Sub



三 使用Areas属性


        有时候客户输入的参数就是多个不连续区域,如何才能针对每一个区域进行单独操作呢?这里就可以使用Areas属性引用选定的单个单元格区域或多块选定区域集合。


Sub four()

    Dim rng, rng2 As Range

    Dim zone As Range

    Set rng = Range('A1:A10,B1:B5,C1:C8')

    '集合包括的区域数放入到立即窗口

    Debug.Print rng.Areas.Count

    '循环处理集合中的每一个区域

    For Each zone In rng.Areas

        zone.Value = zone.Count

        '输入区域地址到立即窗口

        Debug.Print zone.Address

    Next

    '也可以通过Areas(index)引用集合中的区域

    Set zone = rng.Areas(1)

    Debug.Print zone.Address

End Sub


        上面的代码已经经过详细注释,结合动态图演示,效果更好哦,动态图如下:



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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多