zoukankan      html  css  js  c++  java
  • Range对象基本操作应用示例(2)

    第五章 Range对象基本操作应用示例(2)
    - - - - - - - - - - - - - - - - - - - -
    小结
    下面对Range对象的一些常用属性和方法进行简单的小结。
    1、Activate与Select
    试验下面的过程:
    Sub SelectAndActivate()
      Range("B3:E10").Select
      Range("C5").Activate
    End Sub
    其结果如下图所示:

    图05-01:Select与Activate
    Selection指单元格区域B3:E10,而ActiveCell则是单元格C5;ActiveCell代表单个的单元格,而Selection则可以代表单个单元格,也可以代表单元格区域。
    2、Range属性
    可以使用Application对象的Range属性引用Range对象,如
    Application.Range(“B2”) ‘代表当前工作表中的单元格B2
    若引用当前工作表中的单元格,也可以忽略前面的Application对象。
    Range(“A1:D10”) ‘代表当前工作表中的单元格区域A1:D10
    Range(“A1:A10,C1:C10,E1:E10”) ‘代表当前工作表中非连续的三个区域组成的单元格区域
    Range属性也接受指向单元格区域对角的两个参数,如:
    Range(“A1”,”D10”) ‘代表单元格区域A1:D10
    当然,Range属性也接受单元格区域名称,如:
    Range(“Data”) ‘代表名为Data的数据区域
    Range属性的参数可以是对象也可以是字符串,如:
    Range(“A1”,Range(“LastCell”))
    3、单元格引用的快捷方式
    可以在引用区域两侧加上方括号来快速引用单元格区域,如:
    [B2]
    [A1:D10]
    [A1:A10,C1:C10,E1:E10]
    [Data]
    但其引用的是绝对区域。
    4、Cells属性
    可以使用Cells属性来引用Range对象。如:
    ActiveSheet.Cells
    Application.Cells ‘引用当前工作表中的所有单元格
    Cell(2,2)
    Cell(2,”B”) ‘引用单元格B2
    Range(Cells(1,1),Cells(10,5)) ‘引用单元格区域A1:E10
    若想在一个单元格区域中循环时,使用Cells属性是很方便的。
    也可以使用Cells属性进行相对引用,如:
    Range(“D10:G20”).Cells(2,3) ‘表示引用单元格区域D10:G20中第2行第3列的单元格,即单元格F11
    也可使用语句:Range(“D10”).Cells(2,3)达到同样的引用效果。
    5、Offset属性
    Offset属性基于当前单元格按所给参数进行偏移,与Cells属性不同的是,它基于0即基准单元格为0,如:
    Range(“A10”).Cells(1,1)和Range(“A10”).Offset(0,0)都表示单元格A10
    当想引用于基准单元格区域同样大小的单元格区域时,则Offset属性是有用的。
    6、Resize属性
    可使用Resize属性获取相对于原单元格区域左上角单元格指定大小的区域。
    7、SpecialCells方法
    SpecialCells方法对应于“定位条件”对话框,如图05-02所示:
      图05-02:“定位条件”对话框
    8、CurrentRegion属性
    使用CurrentRegion属性可以选取当前单元格所在区域,即周围是空行和空列所围成的矩形区域,等价于“Ctrl+Shift+*”快捷键。
    9、End属性
    End属性所代表的操作等价于“Ctrl+方向箭”的操作,使用常量xlUp、xlDown、xlToLeft和xlToRight分别代表上、下、左、右箭。
    10、Columns属性和Rows属性
    Columns属性和Rows属性分别返回单元格区域中的所有列和所有行。
    11、Areas集合
    在多个非连续的单元格区域中使用Columns属性和Rows属性时,只是返回第一个区域的行或列,如:
    Range(“A1:B5,C6:D10,E11:F15”).Rows.Count
    将返回5。
    此时应使用Areas集合来返回区域中每个块的地址,如:
    For Each Rng In Range(“A1:B5,C6:D10,E11:F15”).Areas
      MsgBox Rng.Address
    Next Rng
    12、Union方法和Intersect方法
    当想从两个或多个单元格区域中生成一个单元格区域时,使用Union方法;当找到两个或多个单元格区域共同拥有的单元格区域时,使用Intersect方法。

    操作单元格或单元格区域有很多有用的技巧,这需要在实践中总结和归纳。有关单元格区域的操作也可参见《在VBA代码中引用Excel工作表中单元格区域的方式小结》和《使用VBA代码选择单元格/区域》。

  • 相关阅读:
    2429: [HAOI2006]聪明的猴子
    1789: [Ahoi2008]Necklace Y型项链
    3399: [Usaco2009 Mar]Sand Castle城堡
    3713: [PA2014]Iloczyn
    1907: 树的路径覆盖
    2751: [HAOI2012]容易题(easy)
    算法模板——计算几何2(二维凸包——Andrew算法)
    算法模板——splay区间反转 2
    算法模板——Dinic网络最大流 2
    算法模板——Dinic最小费用最大流
  • 原文地址:https://www.cnblogs.com/itecho/p/1338518.html
Copyright © 2011-2022 走看看