VBA第九期 结合range和cells选中不连续区域

在单独EXCEL表格操作中容易选中我们想选中的区域,但在VBA程序设计中特别是FOR循环语句中,需要按照我们的思路选取任意区域却不是那么简单。

我们发现range(“a1:d2”)可以选定制定连续单元格,但明显发现这里的列号是字母而行号是数字,而cells()则只能表示某个单元格,下面我们通过两者结合达到任意选定区域的效果,实例如下:

lastrw = Sheets("示例").Range("a1").End(xlDown).Row

 lastcl = Sheets("示例").Range("a1").End(xlToRight).Column

 Sheets("示例").Select

 With Sheets("示例")

 For i = 1 To xzsm

    For ii = 2 To lastrw

     If .Range("a" & ii) = listmsg(i) Then

     If chartdat Is Nothing Then

     Set chartdat = .Range(.Cells(ii, 1), .Cells(ii, lastcl))

     Else

      Set chartdat = Union(chartdat, .Range(.Cells(ii, 1), .Cells(ii, lastcl)))

      End If

     End If

    Next

  Next

这里在结合range和cells的时候,我们注意到UNION起到了很大作用。UNION在我们用到循环结构时可以达到选取我们想要的不连续的行或列的数据集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值