今天我们来学习下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元,一次付费后,以后所录视频均可以免费索取,而且不懂的地方可以交流。非诚勿扰,谢谢配合! |
|