当前位置:首页 > 办公 > Excel教程 > 正文内容

单元格的扩张——Resize属性

酷网2周前 (10-09)Excel教程22

最近在看历史书,到了很多国家兼并扩张的故事,很多地方你争我夺,不亦乐乎。如果说国家的扩张源于君主的野心和利益,那Excel单元格的扩张呢?

我们可以使用Resize属性将单元格或单元格区域扩大,看看下面的例子。

语句:

Range(“A1”).Select

选择单元格A1。这在前面的文章中已介绍过。

下面的语句:

Range(“A1”).Resize(1, 3).Select

选择单元格区域A1:C1。即将单元格从A1扩大到A1:C1区域,向右增加了2个单元格,占据1行3列。

下面的语句:

Range(“A1”).Resize(2, 3).Select

选择单元格区域A1:C2。即将单元格从A1扩大到A1:C2区域,向右且向下共增加了5个单元格,占据2行3列。

上述语句的运行结果如下图所示。

我们可以看出,利用Resize属性对单元格进行扩张时,以原单元格为起始点但包括原单元格本身,Resize属性的第一个参数值代表扩张后的行数,第二个参数值代表扩张后的列数。

实际上,当在与起始单元格相同的行中进行扩张时,可以省略第一个参数,例如上述代码:

Range(“A1”).Resize(1, 3).Select

等价于代码(省略了第一个参数):

Range(“A1”).Resize(, 3).Select

都将选择单元格区域A1:C1。

同理,当在与起始单元格相同的列中进行扩张时,可以省略第二个参数。

下面来看看单元格区域的扩张。

语句:

Range(“B2:D3”).Select

选择单元格区域B2:D3。这在前面的文章中已介绍过。

下面的语句:

Range(“B2:D3”).Resize(3, 5).Select

选择单元格区域B2:F4。即向右从列D扩展到了列F,增加了2列;向下从行3扩展到行4,增加了1行。

我们可以看出,利用Resize属性对单元格区域进行扩张时,与上文中介绍的对单元格进行扩张相同,以原单元格为起始点但包括原单元格本身,Resize属性的第一个参数值代表扩张后区域的行数,第二个参数值代表扩张后区域的列数。

再看看下面的代码:

Range(“B2:D3”).Resize(2,5).Select

选择单元格区域B2:F3,即向右扩张至F列,增加了2列,行数不变。此时,下面的代码将达到相同的效果(如下图所示):

Range(“B2:D3”).Resize(, 5).Select

即省略了第1个参数。因此,如果只沿着列方向(向右)扩张区域,可以省略第1个参数。

同理,如果只沿着行方向(向下)扩张区域,可以省略第2个参数。

接着看下面的代码:

Range(“B2:E5”).Select

选择单元格区域B2:E5。

下面的代码:

Range(“B2:E5”).Resize(3,2).Select

将选择单元格区域B2:C4,如下图所示。

仔细看一下,单元格区域没有扩大,而是缩小了。可以看出,Resize属性并不是以单元格区域整体为起始来扩张的,而是以单元格区域左上角的单元格为起始单元格并包括该单元格,向右扩张第1个参数值指定的列数,向下扩张第2个参数值指定的行数。

因此,代码:

Range(“B2:E5”).Resize(3,2).Select

等价于:

Range(“B2”).Resize(3, 2).Select

对上文所述的内容进行小结,可得出下面的结论:

无论Resize属性前面的单元格对象是单个单元格,还是单元格区域,都是以左上角的单元格为起始并包括该单元格来进行扩张。

扩张后单元格区域的行列数就是Resize属性的参数所指定的数值,即第1个参数指定了最终单元格区域的行数,第2个参数指定了最终单元格区域的列数。

如果省略了第1个参数,则仅向右扩张单元格区域列;如果省略了第2个参数,则仅向下扩张单元格区域行。

此外,Resize属性的参数不能为负,即不能向上或向左扩展。这与Offset属性不同。

Resize属性的语法为:

Range对象.Resize(RowSize,ColumnSize)

扩展特定的单元格,返回一个由参数RowSize和ColumnSize指定行列数的单元格区域。

其中:

参数RowSize指定新单元格区域的行数。若省略该参数,则新单元格区域的行数与原来相同。

参数ColumnSize指定新单元格区域的列数。若省略该参数,则新单元格区域的列数与原来相同。

在上文中,我们对单元格区域B2:E5使用Resize属性,指定的参数分别为3和2,结果单元格区域缩小了。如果你想要确保单元格区域只会扩大,那么可以使用下面的代码:

Sub ResizeRange1()

‘声明变量,代表行列数

Dim lRowNumber As Long, lColumnNumber AsLong

‘获取单元格区域B2:E5的行数和列数

lRowNumber = Range(“B2:E5”).Rows.Count

lColumnNumber =Range(“B2:E5”).Columns.Count

‘将单元格区域B2:E5向右扩展1列,向下扩展1行,得到区域B2:F6

Range(“B2:E5”).Resize(lRowNumber+ 1, lColumnNumber + 1).Select

End Sub

运行代码后,将单元格区域B2:E5扩展为区域B2:F6。

进一步优化代码,使用对象变量来代替单元格区域:

Sub ResizeRange2()

‘声明变量,代表行列数

Dim lRowNumber As Long, lColumnNumber AsLong

‘声明变量,代表单元格或单元格区域

Dim rng As Range

‘给对象变量赋值

Set rng = Range(“B2:E5”)

‘获取单元格区域的行数和列数

lRowNumber = rng.Rows.Count

lColumnNumber = rng.Columns.Count

‘将单元格区域向右扩展1列,向下扩展1行

rng.Resize(lRowNumber + 1, lColumnNumber +1).Select

End Sub

这样,只需改变对象变量rng的赋值,就可以对其所代表的区域进行相应的扩展。

扫描二维码推送至手机访问。

版权声明:本文章来源于互联网,由八酷网收集发布,如需转载请注明出处。

本文链接:https://www.i8ku.com/2021/39558.html

分享给朋友:

相关文章

找到单元格所在的行列号——Row属性和Column属性

找到单元格所在的行列号——Row属性和Column属性

在工作表的左侧边,我们可以看到每一行的行号,在工作表的上方,我们可以看到代表每一列的列字母,因此在工作表中,我们可以很容易知道当前活动单元格处在哪一行哪一列,或者当前活动单元格处在某单元格区域的位置。然而,在VBA中,我...

excel内容合并:同一部门员工合并到同一单元格

excel内容合并:同一部门员工合并到同一单元格

来自于一位做人事管理的公司职员,他问如果把同一部门的员工姓名合并到同一单元格,就如下图,左侧每个员工对应一个数据行,如何快速变成右侧每个部门对应一个数据行。 关键步骤提示: 1、按照部门排序以后,在D1单元格输入公式:...

Excel图表N多产品月销售报表,提取销售量最大的月份

Excel图表N多产品月销售报表,提取销售量最大的月份

做电商数据分析的朋友,提出的问题: 他们有很多产品,要分析每种产品哪个月销售量最多,以改进明年的销售计划。 简化数据如下: 用公式提取每种产品销量最大的月份。 公式实现 在N2单元格输入公式: =OFFSET($A$1...

excel图表按款号、品名、颜色汇总不同型号商品的销量

excel图表按款号、品名、颜色汇总不同型号商品的销量

问题情境 如下样表: 要求按款号、品名、颜色汇总S、M、L、XL型号商品的销量。 存在以下几个难点: 1、款号与品名相同的,却存在颜色或花色的不同; 2、即使款号、品名、颜色相同,但却又分行显示销量。 解决这个问题,需...

如何快速删除Excel图片?Excel删除全部图片的方法

如何快速删除Excel图片?Excel删除全部图片的方法

  为了方便管理,一些Excel文档中自然而然会插入一些图片,当我们下次需要将所有Excel文档中的图片删除的时候如果一个个删除势必会耗费很多时间,如何快速删除Excel图片呢?见下文...

excel怎么四舍五入?excel四舍五入函数

excel怎么四舍五入?excel四舍五入函数

  在我们日常的实际工作中,特别是在Excel的单元格格式中允许定义小数位数,但是在实际操作中我们发现,其实数字本身并没有真正实现四舍五入。如果采用这种四舍五入的方法,在财务运算中常常会出现误差,而这是财务运算所不允许的。  首先新建一个表...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。