分享

VBA简单入门10:Range对象的Resize属性

 张云兴 2018-05-23

VBA简单入门10:Range对象的Resize属性


1、resize属性的语法

Range.Resize(行数,列数)

它返回的是一个单元格对象,以单元格区域的第一个单元格(左上角)为起点,

同时向右向下扩展对应的行数和列数。

range('a1').Resize(5, 3).Select '相当于RANGE('A1:C5')

VBA简单入门10:Range对象的Resize属性

range('a1:c5').Resize(2, 2).Select '相当于range('A1:B2')

VBA简单入门10:Range对象的Resize属性

range('b5:d7').Resize(10, 10).Select '相当于range('b5:k14')

VBA简单入门10:Range对象的Resize属性


2、RESIZE的行、列参数均可省略,但不能同时省略。

省略的行、列和原单元格对象一致。

省略行:range('a3:b8').Resize(, 3).Select

VBA简单入门10:Range对象的Resize属性

行数与range('a3:b8')一致(不变)

省略列:range('a3:b8').Resize(4).Select,注意列参数省略是连逗号都省略了的。

range('a3:b8').Resize(4,).Select '这种写法会出错。

VBA简单入门10:Range对象的Resize属性

列数不变

VBA简单入门10:Range对象的Resize属性

出错的列参数写法


3、RESIZE的行、列参数都可以使用变量。

常见的用法是用来输出数组到工作表,或者数组取单元格区域的值等。

【小练习】按部门筛选。

VBA简单入门10:Range对象的Resize属性

参考代码:

Sub vv()

Dim X As String '部门

X = Application.InputBox(prompt:='请输入部门', Type:=2) '输入部门

[a1:c1].Copy [f1] '复制标题

k = 1

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row '遍历数据

If Cells(i, 1) = X Then '部门符合要求则

k = k + 1 '计数

Cells(i, 1).Resize(1, 3).Copy Cells(k, 'f') '复制表格整行数据(1行3列)

End If

Next

End Sub


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多