在Excel中,Union的功能是合并两个或两个以上的选择区域,合并成为一个更大的区域。 所合并的多个选择区域,这些选择区域,可以是不连续的,也可以是连续的。
一般情况下,要使用Union,可通过如下来使用。
expression.Union(Arg1, Arg2, ...)
expression参数为可选。该表达式返回一个Application对象;
Arg1, Arg2, ... Range 类型,必需。必须至少指定两个Range对象。
在使用Union的时候,我们也没有必要使用expression.Union,直接调用Application.Union方法即可。
一、最不灵活的实例 
Dim MyArea1, MyArea2 As Range
Set MyArea1 = Range("A1:B3")
Set MyArea2 = Range("A7:B10")
Application.Union(MyArea1, MyArea2).Select
如上代码,功能是,首先定义两个选择区域,然后,分别设置选择区域为:A1:B3和A7:B10;最后,通过Application.Union把两个选择区域进行合并,并将合并后的区域选中。
当然,Application.Union合并区域,功能是强大的,但是,至少要有两个选择区域;如果有多个,也是可行的,如下代码,通过Application.Union合并三个选择区域,并将其选中。
Dim MyArea1, MyArea2, MyArea3 As Range
Set MyArea1 = Range("A1:B3")
Set MyArea2 = Range("A7:B10")
Set MyArea3 = Range("A12:B14")
Application.Union(MyArea1, MyArea2, MyArea3).Select
以上代码大家都看了,有没有发现问题呢?
当我们在设定选择区域的时候,必须在Range("")指明从哪个单元格到哪个单元格,比如Range("A12:B14")
,那是多么的麻烦。
下面,给大家介绍一下更为灵活方便的方法。
二、较为灵活方便的方法
要选择多个区域并合并,使用单元格名称来确定区域,是多么的不方便。
我们完全可以使用行列的序号来代替单元格名称。
如下代码:
Dim MyArea1, MyArea2, MyArea3 As Range
Set MyArea1 = Range(Cells(1, 1), Cells(3, 3))
Set MyArea2 = Range(Cells(6, 1), Cells(9, 3))
Set MyArea3 = Range(Cells(12, 1), Cells(13, 3))
Application.Union(MyArea1, MyArea2, MyArea3).Select
就是这样,通过Range(Cells(1, 1), Cells(3, 3))来代替Range(“A1:C3”)。
知道为什么要这么使用吗,愿意就是,当您试图通过VBA来确定单元格名称,如A1:C3时,难以构造这样的字符连接。倒不如直接使用行列所在的序号进行替代,因为Cells(行号、列号),里面的行列号,我们可以通过直接指定或者通过循环赋予一个值。
三、更灵活的实例
基于以上两个实例,下面,我们可以构造一个更为灵活的实例。先看如下代码吧:
Application.Union(Range(Cells(1, 1), Cells(11, 3)), Range(Cells(16, 1), Cells(16, 3)), Range(Cells(21, 1), Cells(32, 3))).Select
上述代码中,已经不再单独定义Range对象了,而是在Union方法中,直接调用Range(Cells(1, 1), Cells(11, 3))来合并被选择的单元格区域

最新文章

  1. 利用iframe实现无刷新上传处理
  2. 找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Launcher
  3. BZOJ 3572: [Hnoi2014]世界树
  4. 同一服务器部署多个tomcat时的端口号修改详情
  5. I/O Completions port
  6. linkscrpit
  7. linux cat 命令详解--转
  8. Html5学习--canvas
  9. 每日一算法【one】
  10. 使用ngrok让微信公众平台通过80端口访问本机
  11. ubuntu14.04 安装 tensorflow
  12. Android Studio的使用(二)--Debug调试
  13. python 0007
  14. 51Nod1336 RMQ逆问题 其他
  15. Java 8 时间日期
  16. raid的一些简单知识
  17. 基于Redis主从复制读写分离架构的Session共享(Windows Server)
  18. 【ActiveMQ入门-10】ActiveMQ学习-通配符+异步接收
  19. 【Win10】页面的导航效果
  20. 从C语言的整数取值范围说开去

热门文章

  1. 换工作?试试远程工作「GitHub 热点速览 v.22.40」
  2. MyBatis的各种查询功能
  3. Vue学习之--------深入理解Vuex之模块化编码(2022/9/4)
  4. Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
  5. 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
  6. 浅谈--ETCD的基本概念及用法
  7. C#中进行数值的比较
  8. 【FAQ】关于华为地图服务定位存在偏差的原因及解决办法
  9. day05-JavaScript02
  10. 类的编写模板之简单Java类