单元格的扩张——Resize属性( 二 )


因此 , 代码:
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
【单元格的扩张——Resize属性】这样 , 只需改变对象变量rng的赋值 , 就可以对其所代表的区域进行相应的扩展 。

推荐阅读