Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4888|回复: 2

[已解决]VBA UNION用法求助

[复制链接]
发表于 2015-8-20 21:46 | 显示全部楼层 |阅读模式
Sub dd() 'union示例
      Dim rg As Range, x As Integer
      For x = 2 To 10 Step 2
        If x = 2 Then Set rg = Cells(x, 1)
        Set rg = Union(rg, Cells(x, 1))
      Next x
      rg.Select
    End Sub

Set rg = Union(rg, Cells(x, 1)) 这一句
VBA 视频里讲什么把老的放进去,再放个新的.听了两三遍也没明白他到底是要干什么啊. 如果 rg = Cells(x, 1) 那么 下面的union括号里 rg 不就等于 Cells(x, 1)嘛. 哪里来的老的新的? 还有这个代码到底要合并偶数行还是全部啊? 如果是偶数行那么Cells(x, 1) 每一个找到的偶数行都计算了,那么加入RG也说得通,但是想想又不对,把所有数的集合都放进去不久可以了嘛干嘛还分基数偶数.请哪位高手讲解一下,用简洁明了的话说行吗? 不要说了半天都在绕圈子...............
最佳答案
2015-8-20 23:11
就我的理解,若有不对之处请指正,谢谢!
  If x = 2 Then Set rg = Cells(x, 1)
这句的意思是将第一列的偶数行即A2赋值给rg
        Set rg = Union(rg, Cells(x, 1))
这句的意思是将rg(老的即A2)与A2合并即A2与A2合并,
当X=4时将rg与A4合并即A2与A4合并
当X=6时将rg与A4合并即A2、A4与A6合并
发表于 2015-8-20 22:15 | 显示全部楼层
本帖最后由 dsmch 于 2015-8-20 22:21 编辑

s=0
for x=2 to 10
s=s+x
next
msgbox s
和上面的类似
回复

使用道具 举报

发表于 2015-8-20 23:11 | 显示全部楼层    本楼为最佳答案   
就我的理解,若有不对之处请指正,谢谢!
  If x = 2 Then Set rg = Cells(x, 1)
这句的意思是将第一列的偶数行即A2赋值给rg
        Set rg = Union(rg, Cells(x, 1))
这句的意思是将rg(老的即A2)与A2合并即A2与A2合并,
当X=4时将rg与A4合并即A2与A4合并
当X=6时将rg与A4合并即A2、A4与A6合并
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-26 23:47 , Processed in 0.203089 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表