分享

VBA中单元格区域的选择(resize)!

 jys360 2018-01-15



今天我们来学习下resize这个方法,从字面意思理解就是重新确定尺寸。


我们来看一个实例:


以A3单元格为参照,选定A3到C5,怎么操作?



1、resize


Sub 选择区域()


Range('a3').Resize(3, 3).Select


End Sub


Range('a3').Resize(3, 3).Select,其实就是以某个单元格为起始位置,选择几行几列,跟前面章节讲的偏移是一个道理,重新选择时行列包含了起始行和列。


2、range


大家都知道,平常我们表示单元格,经常用range。


Sub 选择区域()

Range('a3').Range('a1:c3').Select

End Sub


跟上面的效果一样的,这个是在的基础上,把Range('a3')作为A1单元格,重新指定区域。


Sub 选择区域()

Range('a3').EntireRow.Range('a1:c3').Select

End Sub


先获取Range('a3')所在的行,以此行为第一行,重新指定区域。


知道了这个方法后,我们就可以实现筛选动能,比如下面:



筛选A产品并放到以A11为起始的区域。


思路:


把列标题区域[a1:d1]直接赋给[a11:d11],循环产品列中的单元格,若其值等于产品A,那么以该单元格为参照,重新选定该行内容,把值依次赋给下面尺寸相同的区域。




代码如下:


Sub 筛选()


Dim rng As Range, n%


[a11:d11] = [a1:d1].Value


For Each rng In [a2:a8]

   

    If rng.Value = 'A' Then

    

    n = n + 1

    

    Cells(n + 11, 'a').Resize(1, 4) = rng.Resize(1, 4).Value

    

    End If


Next rng


End Sub


当然,Cells(n + 11, 'a').Resize(1, 4) = rng.Resize(1, 4).Value也可以表达成:


Cells(n + 11, 'a').Resize(1, 4) = rng.EntireRow.Range('a1:d1').Value

    

Cells(n + 11, 'a').Resize(1, 4) = rng.Range('a1:d1').Value

    

今天的分享就到这里。


视频教程正在陆续录制中(目前录制了十八节了),需要的同学可以加我微信号:527240310,50元,一次付费后,以后所录视频均可以免费索取,而且不懂的地方可以交流。非诚勿扰,谢谢配合!


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多