VBA学习笔记之Union方法

'Application.Union 方法
'返回两个或多个区域的合并区域
'
Sub test()
Range("a1:b3,c5:d8").Select '文本地址引用方式
Union([a1:b3], [c5:d8]).Select '单元格区域引用方式
End Sub
'小结:虽然range也可以完成多区域的引用
'但文本地址的引用方式最多不能超过256个字符
'而union却没有这个限制
Union写法:

1 Union([a1:a5], Range("a10")).Select
2 Union(Cells(1, 1), Range("a10")).Select
3 'Union("a1", "a10").Select  Union这样写区域是不行的

 

'经常利用变量与union进行单元格的连接

1 Sub 连接符单元格连接()
2 Dim rng As Range
3 For Each rngs In [b2:b10]
4     adss = rngs.Address
5     ads = ads & rngs.Address & ","
6 Next
7     ad = Left(ads, Len(ads) - 1)
8 End Sub

 

1 Sub union单元格连接()
2 Dim rng As Range, rngs As Range
3 Set rng = [b2]
4 For Each rngs In [b2:b10]
5     adss = rngs.Address
6     Set rng = Union(rng, rngs) '关键Union连接语句
7     ads = rng.Address
8 Next
9 End Sub

 

1 Sub 条件筛选自己写()
2 For Each rng In Range("b2", Cells(Application.CountA(Columns(2)), 2))
3     If rng > 90 Then
4     k = k + 1
5    Range(Cells(k + 1, 4), Cells(k + 1, 5)) = Union(rng, rng.Offset(0, -1)).Value '关键的语句
6     End If
7     Next
8 End Sub

 

效果图:筛选出了成绩大于九十的姓名和成绩

给出教程里的代码:

 1 Sub 条件筛选()
 2 For Each rng In Range([b2], Cells(Application.CountA([a:a]), 2))
 3     If rng > 90 Then
 4         k = k + 1
 5         If k = 1 Then
 6             Set rn = rng
 7         Else
 8             Set rn = Union(rn, rng) '符合条件的rng就加入(Union)到rn
 9             aa = rn.Address
10         End If
11     End If
12 Next
13 For Each rngs In rn '对于rn里的每一个元素进行操作得到结果
14     n = n + 1
15     Cells(n + 1, "d") = Cells(rngs.Row, "a")
16     Cells(n + 1, "e") = rngs
17 Next
18 End Sub

 

转载于:https://www.cnblogs.com/gilgamesh-hjb/p/7457678.html

  • 0
    点赞
  • 0
    评论
  • 8
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值