潮办公
  • python基础
  • python爬虫
  • vba
潮办公
一个教你高效办公的网站
  1. 首页
  2. VBA
  3. 正文

day10: 再谈range对象

2020年09月15日 48点热度 2人点赞 0条评论

在第七节中,我给大家简单结束了一下range对象,让大家知道了range拥有一个value属性,以及range可以用cells的行列的表示方法。因为range是整个Excel工作簿的基础构成,相对于人体的细胞。所以本节再次深入了解一下range对象。

一、range的多种引用方法

  • 假设我们要引用A1单元格,除了可以用range(“A1″), cells(1,1),还有一种方法,就是把cells的第1列,改成第A列,也就是说cells(1,”A”)其实也是表示A1单元格

  • 我们上节已经知道,如果要引用多个单元格,或者说合并单元格,可以使用“:”来连接,比如range(“A1:B4”)就是指下面的区域。

  • 如果我们要引用多个区域,可以用逗号隔开,比如这样,

range("A1:B4,C5:D8").select
'运行效果如下

  • 如果没有中间的逗号,那将代表多个区域的相交区域,比如:
range("A1:B4 B4:C7").select

  • cells还可以作为单个元素使用,如cells(1),代表第一个单元格,也就是A1单元格,cells(2)代表第二个单元格,也就是B1单元格。简称就是从左到右,从上到下依次排布下去。

  • cells还可以作为ranges的方法。比如range(“A2:B3”).cells(1,1)代表选中区域的第一行第一列元素,也就是A2单元格,比如

range(“A2:B3”).cells(1,1) .select

同理,因为cells可以单个元素使用,所以 range("A2:B3").cells(1,1) 和 range("A2:B3").cells(1) 其实是一样的,两者的区别就是一个是2×2矩阵,一个是4个数字构成的数组。

二、引用行和引用列

  • 在vba中,行用rows表示,列用columns表示

  • 若要引用第三行,可以rows("3:3").select,或者 rows(3).select

  • 若要引用第三到第五行,可以使用 rows("3:5").select

  • 同样的,若要引用第三列,可以使用columns(3).select,或者 columns ("C:C").select 注意,列是用字母表示的,如果要是用双引号表示列,记得用字母而不是数字。

  • 若要引用第三到第五列,可以使用 columns ("C:E").select

  • 类似range的cells,rows和columns也可以作为他们自身的对象

  • 比如

rows("2:3").row(1).select
'代表从第二列开始的第一列,也就是选中第二列
  • 比如
columns ("C:E").columns(2).select
'代表从C列开始的下一列,也就是第D列,或者说第四列。

三、range的其它属性

  • 在上文我给大家简单的将了一下range的value属性,也就是单元格里面的值。除了value属性外,还有下面几个比较常用的range属性
  1. offset
  • offset,是一个偏移函数,它offset(1,2)代表向下走一格,向右走两个格。
    比如
range("A1").offset(1,2).select
'若为负数,则方向相反

  1. resise
    resize就是重新定义尺寸大小,可以用来扩大或者缩小选定区域。
    比如
range("A1").resize(1,2).select

它会以A1单元格为基点,然后选中一行,两列的重叠位置。

- 若选定起始区域为合并单元格或者为一个表格区域,则以左上角的单元格为准
比如:

range(“A1:B3”).resize(1,2).select

效果和上面是一样的

  1. CurrentRegion
    CurrentRegion,英文翻译过来就是当前使用区域,利用这个属性,可以选择表格中当前已经使用过的区域。
    比如
range("A2").CurrentRegion.select`


- 咦?为啥没选中右边的数据呢?原因是因为,CurrentRegion只能识别连续的非空单元格,如果有空单元格,他就不会选中了。

  • 那又有小伙伴会问了,为啥会选中第一列呢,不也是空的嘛?

  • 这个是因为CurrentRegion是从A1单元格为起点,然后根据我输入的A2单元格的最下面的非空单元格,也就是C6单元格,构成的新区域。

  • 那要是我想把整个工作表的使用单元格都选中呢?

  • 我们可以使用Activesheet的usedrange属性

  • Activesheet,也就是活动工作表,注意,没有s,因为活动工作表只有一张。选中哪个就是哪个。

  • usedrange,故名思意,就是已使用的单元格。
    比如:

Activesheet.usedrange.select


- 这样,他就会把已使用的行和列构成一个新区域。
- 注意,如果我在A10单元格,动了它的格式,比如把常规改成数值,运行上面那段代码也会选中它。因为我也使用了A10单元格,改了它的格式,只不过没有往里面填数字而已。

  1. End

- End属性是一个经常用的属性,它和CurrentRegion有点类似,是用来探测当前选中单元格周边区域边界的,它的区域起始点也是A1单元格
比如:

range("B2").End(xlup).select 
'选中上边界,边缘为B1单元格

比如:

range("B2").End(xldown).select
'选中下边界 ,边缘为B5单元格

比如:

range("B2").End(xlToleft).select
'选中左边界 ,边缘为A2单元格

比如:

range("B2").End(xlToright).select
'选中右边界 ,边缘为C2单元格


- 若我们选中的是空单元格,其End的属性将返回最后一个空单元格边缘的非空单元格。(只有非空单元格和边线单元格可以作为边缘)

  • 比如我们知道Excel工作表共有65536行,如果我们想在“刘三”下面填入“王五”

  • 我们有两个方法,一是选中B2单元格,找到它的下边缘,然后向下偏移一个单元格

range("B2").End(xlDown).Offset(1,0).value="王五"
  • 也可以选中B65536单元格,找到它的上边缘(同样它的边缘是B5),然后向下偏移一个
range("B65563").End(xlUp).Offset(1,0).value="王五"
  1. count
  • 除了使用end探测边缘,常用的还有count属性。

  • count可以计算单元格个数

  • 比如

MsgBox (Range("A1:B20").Count) 
‘答案是40
  • 也可以用来计算行,列数量
Activesheet.UsedRange.Rows.count 
'统计活动单元格已使用的行数
Activesheet.UsedRange.Columns.count 
'统计活动单元格已使用的列数

四、range的常用方法

  • range的方法我们已经知道了select方法,也就是选中,出了select,还有下面几种方法
  1. active
  • active和select几乎没有区别,active还有激活的意思,所以也可以用来激活工作簿,工作表
  1. copy

- 这个意思很简单,就是复制的意思。比如range(“A1”).copy

  1. cut

- 这个就是传说中的剪切了

  1. delete

- 删除,一般要选择默认移动位置,默认是往左移动
- 如果我们要指定移动位置,可以通过shift:=xlup往上移动
比如

range("A1").delete shift:=xlup 
'删除A1单元格,其它往上移动
range("A1").delete shift:=xlToleft 
'删除A1单元格,其它往左移动
  1. paste

- paste就是粘贴了,一般和剪切,复制连着用。

复制——》选中——》粘贴

  • 比如,复制A1单元格,选中A2,粘贴
Range("A1").Copy
Range("A2").Select
ActiveSheet.Paste
'选中的区域粘贴进去
  • 其实也可以直接省略选中这个,直接copy后粘贴,
Range("A1").Copy Range("A2")
'直接粘贴的方法
  1. clear

- 这个也用的比较多,用于清除格式
比如:

range("A1").clear 
'用于清除A1单元格的所有格式、批注、内容等
````
```shell
range("A1").clearComments 
'用于清除A1单元格的批注
range("A1").clearContents 
'用于清除A1单元格的内容
range("A1").clearForamats 
'用于清除A1单元格的格式

基本range的内容都在这里了,内容较多,大家好好练习

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: vba
最后更新:2020年09月15日

Tlntin

保持饥渴的专注,追求最佳的品质

点赞
< 上一篇

文章评论

取消回复
分类目录
最新 热点 随机
最新 热点 随机
Ubuntu20.04使用Premium15破解版教程 Linux使用OpenVpn教程 Ubuntu20.04安装最新微信2.9.5与Tim3.1.0 day10: 再谈range对象 day9: 了解Excel结构(下) day8: 了解Excel基本结构(中)
day2:基本数据类型之数字 day13:迭代器与生成器 day5:基本数据类型之列表(上) day7: 了解Excel结构(上) day5: vba编程基础(上) day1:python安装与简单使用
标签聚合
Ubuntu python爬虫 vba python基础 Linux
其他信息
公众号
qq群

COPYRIGHT © 2020 潮办公. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

粤ICP备18110825号-2