【转载】EXCEL VBA 通过VBA中的Union合并多个Range选择区域
在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))来合并被选择的单元格区域
【转载】EXCEL VBA 通过VBA中的Union合并多个Range选择区域的更多相关文章
- VBA读取word中的内容到Excel中
原文:VBA读取word中的内容到Excel中 Public Sub Duqu() Dim myFile As String Dim docApp As Word.Applicati ...
- 【转载】EXCEL VBA 工作簿(表)合并拆分
一.合并工作簿 Sub 合并工作簿() Application.ScreenUpdating = False myfile = Dir(ThisWorkbook.Path & & ...
- 在Excel里用vba给合并的单元格添加注释
Excel里使用VBA对已经合并的单元格添加注释,直接使用AddComment会报: 运行时错误 '1004':应用程序定义或者对象定义错误 找了很多文章都没找到怎么解决,最后发现在AddCommen ...
- mysql中的union操作(整理)
mysql中的union操作(整理) 一.总结 一句话总结: union两侧的字段数和字段类型要是一样的 union可以接多个 orderby和排序可以在最后的union组合之后 1.union简单实 ...
- .net导入excel数据到数据库中
在开发过程中我们经常面临着需要将数据导出或者导入到系统中,例如一些生产管理系统,项目管理系统等等都会有这样的需求: 将excel数据到系统中思路:获取excel中每一行的数据,然后存入集合中,批量添加 ...
- EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字
EXCEL表格单元格中包含数字英文和汉字,如何自动去掉汉字,保留英文和数字 Function 求数字和字母(对象 As String) '在文本与数字混杂中提取数字和字母 Dim myReg ...
- C++中使用union的几点思考(转)
C++中使用union的几点思考 大卫注:这段时间整理旧资料,看到一些文章,虽然讲的都是些小问题,不大可能用到,但也算是一个知识点,特整理出来与大家共享.与此相关的那篇文章的作者的有些理解是错误的,我 ...
- Ms SQLServer中的Union和Union All的使用方法和区别
Ms SQLServer中的Union和Union All的使用方法和区别 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 ...
- Excel在任务栏中只显示一个窗口的解决办法
Excel在任务栏中只显示一个窗口的解决办法 以前朋友遇到过这个问题,这次自己又遇到了,习惯了以前的那种在任务栏中显示全部窗口,方便用Alt+Tab键进行切换. 如果同时打开许多Excel工作簿, ...
随机推荐
- python基础之open函数和路径处理
前言 本次内容主要介绍文件处理open函数以及路径处理. 一.open函数 根据前面介绍的函数调用方式,调用open函数. #open函数调用 open() TypeError: open() mis ...
- dubbo的一系列配置与搭建
dubbo新的版本采用前后端分离技术,在github上下载的时候,不仅仅只是一个dubbo-admin 而是将admin包分离为dubbo-admin-ui前端包和dubbo-admin-server ...
- Atcoder beginner contest 249 C-Just K(二进制枚举)
题目大意:给你N个字符串,你可以从中选择任意数量的字符串,请统计在你的字串中,相同字母出现次数正好为K次的字母数.数据保证出现的字母都是小写字母. 1≤N≤15 1 ≤K≤N 一开始读题的时候读错了, ...
- PYQT5 学习
zetcode教程 汉化版: https://maicss.gitbook.io/pyqt5-chinese-tutoral/ 官方网站: https://www.riverbankcomputing ...
- Sprint产品待办列表的优先级要怎么排?
在梳理产品待办事项列表的过程中,产品负责人需要先做优先级排列,保证我们 在一定的时间盒内能够交付需要优先级最高.最具价值的用户故事. 那这个用户故事的优先级要怎么排列,我们怎样选择用户故事的实现顺序? ...
- 46.drf过滤、搜索、排序
DRF的过滤类 drf过滤器在filters模块中,主要有四个类 BaseFilterBackend:过滤基类,留好占位方法待后续继承 SearchFilter:继承BaseFilterBackend ...
- 用于数据科学的顶级 C/C++ 机器学习库整理
用于数据科学的顶级 C/C++ 机器学习库整理 介绍和动机--为什么选择 C++ C++ 非常适合 动态负载平衡. 自适应缓存以及开发大型大数据框架 和库.Google 的MapReduce.Mong ...
- 支持JDK19虚拟线程的web框架,之五(终篇):兴风作浪的ThreadLocal
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos <支持JDK19虚拟线程的web框架>系列 ...
- 打不开 github 的方法与推荐基于Vue3与Element plus的后台管理系统
一.打不开 github 的方法 1.打开本机 hosts 文件(C:\Windows\System32\drivers\etc) 2.然后在 hosts 文件里的末尾放入一下两个 IP 地址: # ...
- K8S节点选择器案例
#给节点打上标签 [root@lecode-k8s-master deployment]# kubectl label no lecode-dev-001 hostname=lecode-dev-00 ...