1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > sxssfworkbook 设置单元格大小_Offset属性和Resize属性相结合 完美实现选择区域大小的改变...

sxssfworkbook 设置单元格大小_Offset属性和Resize属性相结合 完美实现选择区域大小的改变...

时间:2019-03-01 05:24:17

相关推荐

sxssfworkbook 设置单元格大小_Offset属性和Resize属性相结合 完美实现选择区域大小的改变...

大家好,我们今日继续讲解VBA代码解决方案的第123讲内容:利用单元格的Offset属性和Resize属性改变选择区域的大小.我们在操作EXCEL时候,按下鼠标,拖动就会完成一个区域的选择,那么这个动作是否可以通过VBA代码来实现呢?

在上一讲中我们谈到了Offset属性,这个属性是单元格属性中应用最为灵活的一个属性,也非常好理解,我们可以使用Offset属性完成定位,然后再改变选择区域的大小,就可以实现我们刚刚提出的问题。

假设开始选择的区域是A6:A15,如何将选择区域向下移动两行,向右移动两列,然后再改变选择区域实现选择区域是C8:F9呢?Offest属性只能完成前面部分向下移动两行,向右移动两列这个动作,实现后面部分要求另外一个属性来完成。这个就是Resize属性

Resize属性的语法为:Range对象.Resize(RowSize,ColumnSize)

Resize属性将扩展特定的单元格,返回一个由参数RowSize和ColumnSize指定行列数的单元格区域。其中:

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

Range('A1').Resize(1, 3).Select等价于代码:省略了第一个参数Range('A1').Resize(, 3).Select都将选择单元格区域A1:C1。

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

C 利用Resize属性对单元格进行扩张时,是以原单元格为起始点但包括原单元格本身的扩张。

我们可以结合Offset属性和Resize属性来完成上面的问题。在结合这两个属性之前,我们先看看下面的代码:

Range("A6:A15").Select

Selection.Offset(2, 2).Select

Selection.Resize(2, 4).Select

下面我们来分析上述代码的执行过程:录入代码如下

Sub mynzDM()

Sheets("sheet5").Select '定位在sheet5工作表

Range("A6:A15").Select

Selection.Offset(2, 2).Select

Selection.Resize(2, 4).Select

End Sub

代码截图:

为了看到每个步骤我设置了断点。

点击执行:

1 截图1

第一条指令选择区域A6:A15,当前活动单元格是A6。

2去掉代码Selection.Offset(2, 2).Select的断点,截图2

第二条指令将选区偏移到C8:C17。活动单元格C8处于原单元格A5的向下两行和向右两列(大家要记住这个两行和两列是不含原单元格的)。现在,活动单元格是C8。

3 去掉最后的断点,执行:

最后一条指令将当前选区 改变大小,单元格区域C8:F9被选中了,而不再是C8:C17。此时的活动单元格是C8, Selection.Resize(2, 4).Select ,就是C8的单元格向下扩展两个,向右扩展4个(这时的扩展是将起始的活动单元格计算在内的)

当然,后面两行指令可以结合成下面方式: Selection.Offset(2, 2).Resize(2, 4).Select

上面的例子,别看简单,其实分成了三个步骤:

第一步:Offset属性计算得到新区域的起始点,

第二步:Resize 属性决定新选区的大小,

第三步:Select方法选取具体的单元格区域。

在我们实际程序的编写中会经常用到的指令是ActiveCell,会代替活动单元格的具体位置,这样一来你的程序会大大的简化。如代码:ActiveCell.Offset(-3, 0).Select 都是经常用到的。

今日内容回向:

1 Resize 属性的意义是什么?

2 如何改变选择的区域呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。