excel表格_excel函数公式大全_execl从入门到精通
用Union和Intersect方法获得单元格区域2024-04-12 00:42:47
今日的内容是“VBA之EXCEL应用”的第四章“单元格(Range)对象”中第十节“用Union和Intersect方法获得单元格区域”。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面向初学人员,共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。
第十节 用Union和Intersect方法获得单元格区域
大家好,我们在前几节详细介绍了单元格区域的扩展,这些扩展都是基于一个基准单元格来执行的操作。这讲我们讲解Union和Intersect方法,获取的也是一个单元格区域,但这种方法是基于两个基准的操作。下面我们来讲解这两种方法。
1 Application.Union 方法
这种方法返回两个或多个区域的合并区域。
语法:expression.Union (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
expression:表示 Application 对象的变量。
参数:
① Arg1 必需 Range类型 必须至少指定两个 Range 对象。
② Arg2 必需 Range类型 必须至少指定两个 Range 对象。
③ Arg3– Arg30 可选 Variant类型 一个区域。
2 Application.Intersect方法
返回一个Range对象,该对象表示两个或多个区域的矩形交集。如果指定了不同工作表中的一个或多个区域, 则返回错误。
语法:expression.Intersect (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
① Arg1 必需 Range类型 重叠的区域。 必须至少指定两个 Range 对象。
② Arg2 必需 Range类型 重叠的区域。 必须至少指定两个 Range 对象。
③ Arg3–Arg30 可选 Variant类型 一个相交区域。
3 Union和Intersect方法的应用示例
此示例将 Worksheet.Range 属性、Application.Union 方法和 Application.Intersect 方法进行比较。
Range("A1:A10").Select
Range(Range("A1"), Range("A10")).Select
Range("A1, A10").Select
Union(Range("A1"), Range("A10")).Select
Range("A1:A5 A5:A10").Select
Intersect(Range("A1:A5"), Range("A5:A10")).Select
对于以上的示例代码,我们逐个分析一下结果:1)Range("A1:A10").Select, 将选择A1到A10的连续区域
2)Range(Range("A1"), Range("A10")).Select ,和上面的Range("A1:A10").Select返回结果相同。
3)Range("A1, A10").Select,将选择A1和A10两个单元格
4)Union(Range("A1"), Range("A10")).Select 将选择A1和A10两个单元格
5)Range("A1:A5 A5:A10").Select 将选择A5一个单元格
6)Intersect(Range("A1:A5"), Range("A5:A10")).Select 将选择A5一个单元格
不知大家对上述结果是否理解呢?
4 Union和Intersect方法的实例应用
通过以上的讲解,我们了解到:Excel VBA中的Union方法返回一个Range对象,该对象表示两个或多个范围的并集;Excel vba中的Intersect方法返回一个Range对象,该对象表示两个或多个范围的交集。
为了更好地说明Union和Intersect方法,我们看下面的实例应用:
实例一:如下面的截图,要求利用Union实现“VBA”单元格的选择:
我们看实现的代码:
Sub mynzR() 'Union和Intersect方法的实例应用1
Dim myRange, mycell, myTEM As Range
I = 0
Set myRange = Range("a1").CurrentRegion
For Each mycell In myRange
If mycell.Value = "VBA" Then
I = I + 1
If I = 1 Then
Set myTEM = mycell
Else
Set myTEM = Union(myTEM, mycell)
End If
Next
myTEM.Select
End Sub
代码截图:
代码讲解:
1) Set myRange = Range("a1").CurrentRegion 将以A1为基准的单元格区域赋给变量myRange。
2)For Each mycell In myRange
在myRange中建立一个遍历循环,如果单元格的值为VBA就将这个单元格加入一个单元格的区域myTEM。
3)If I = 1 Then
这是给变量myTEM 赋初始值。
下面看实现的效果:
实例二:仍是上面的截图,要求利用Intersect方法实现右下角值为“NZ”单元格的选择:
我们看下面的代码:
Sub mynzS() 'Union和Intersect方法的实例应用2
'Set myRange = Range("a1:E12")
Set mycell = Range("D7:H12")
Set myTEM = Intersect(myRange, mycell)
1) 上述代码首先命名了两个单元格区域myRange和mycell,然后利用Intersect方法进行处理。
2) 对于myRange的区域,我给出了两个语句:
都是可以用的。
下面看代码的运行结果:
今日内容回向:
1)Union和Intersect方法的意义是什么,有什么作用?
2) 要充分理解这两种方法的语法解释示例。
本讲内容参考程序文件:工作簿04.xlsm
分享成果,随喜正能量
VBA的应用范围及学习方法:
VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!
我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了七部VBA专门教程。
第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。
第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。
第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,视频更易接受。
第五套:VBA中类的解读和利用这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第六套教程:VBA信息获取与处理,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。
第七套教程:VBA之EXCEL应用 这是一部初级教程这部教程共三册,从从创建宏、对话框、工作簿和工作表对象、单元格对象等基础内容讲起,到循环结构、错误处理、字符串操作、日期和时间、事件、数组应用,函数过程等方面,一直讲解到控件和窗体对象的应用都是我们提高自己EXCEL水平的必须。
以上各教程学习顺序:7 1 3 2 6 5或者7 4 3 2 6 5。其中第四套是对第一套的视频讲解,所以第一和第四只选其一即可。
标签: excel函数表示交集和并集