之前一篇文章中我们给出了一个公式,能够求出一列数值中从最后一个数值开始向上数5个数值的和,忽略其中的空格。本文给出了一个更简洁的公式,并且可以指定求后面的X个数值之和。 如下所示,假设我们要求这列数......
2023-05-29 0 Excel函数,excel函数公式,excel表格制作,Excel教程
如果我们想知道两个单元格区域是否有共同的单元格,或者要知道两个区域中哪些是共有单元格,即两个单元格区域重合的部分,就可以使用Intersect方法。
如下图所示,很容易看出单元格区域A1:C5与B3:E8相重合的区域是B3:C5,也就是红色单元格部分。
下面的代码获取上图中两个单元格区域重合的部分,并赋值给变量rngIntersect,最后显示重合区域的单元格地址。
Sub testIntersect1()
Dim rngIntersect As Range
‘获取相重合的交叉区域
Set rngIntersect =Intersect(Range(“A1:C5”), Range(“B3:E8”))
MsgBox “A1:C5与B3:E8相重合的区域是:”& rngIntersect.Address
End Sub
Intersect方法的语法
表达式.Intersect(Arg1,Arg2,Arg3,…,Arg30)
说明:
表达式是一个代表Application对象的变量,表明Intersect方法属于Application对象,在excel中就是指excel应用本身。因此,通常在代码中可以省略前面的Application限定,直接书写Intersect。例如我们在本文的示例代码中均省略了前面的Application。
必须指定至少两个Range对象作为其参数。
其返回值为Range对象。
我们来看看一些例子,进一步了解Intersect方法及其应用。
示例:判断两个单元格区域是否有重合
下面的例子用来判断一个区域是否包含另一个区域,即一个区域是另一个区域的子区域。代码如下:
Sub testIntersect2()
Dim rng1 As Range, rng2 As Range
Dim rng As Range
‘设置要测试的两个区域
Set rng1 = Range(“A1:D9”)
Set rng2 = Range(“A1:E11”)
‘获取两个区域相重合的区域并存储在变量中
Set rng = Intersect(rng1, rng2)
‘判断两个区域是否存在重合的区域
if Not rng Is Nothing Then
‘判断两个区域之间的包含关系
if rng.Address = rng1.Address Then
MsgBox rng2.Address & “包含”& rng1.Address
Else
MsgBox rng1.Address & “包含”& rng2.Address
End if
Else
MsgBox rng1.Address & “和” &rng2.Address & “区域无重叠.”
End if
End Sub
下图为不同区域的测试结果。(目前,我们还没有学习到与用户交互,所以采用“硬编码”的形式直接设置两个区域rng1和rng2。)
下面是一个示例。结合运用Union方法和Intersect方法,禁止用户选择工作表中B1:B5和C6:C10这两块单元格区域,这样就可以防止用户修改这两块区域中的数据。代码如下:
Private SubWorksheet_SelectionChange(ByVal Target As Range)
Dim rngForbidden As Range
Set rngForbidden =Union(Range(“B1:B5”), Range(“C6:C10”))
‘如果所选择的单元格没有处于禁止操作的单元格区域中,则退出程序
if Intersect(Target, rngForbidden) IsNothing Then Exit Sub
‘选择A1并发出警告
Range(“A1”).Select
MsgBox “不能选择” &rngForbidden.Address & “中的单元格.”, vbCritical
End Sub
每当用户在与包含该事件过程的模块相关联的工作表中选择单元格区域时,就会触发工作表的Worksheet_SelectionChange事件过程。代码中,首先使用Union方法定义了由两个非连续单元格区域组成的禁止操作的区域,然后使用Intersect方法检查所选择的区域与禁止操作的区域是否有重合,并作为if语句的判断条件,如果没有重合则退出事件过程,用户正常操作,并不会感觉到什么;如果有重合,则光标定位到单元格A1并给出一条警告消息。
注:简单地说,工作表事件就是用户操作工作表时,工作表做出的相应响应。关于工作表事件将在以后详细介绍。
标签: Excel函数 excel函数公式 excel表格制作 Excel教程 方法 ppt制作触发器的方法 在ppt中制作统计图表的方法 ppt画笔使用方法 ppt制
相关文章
之前一篇文章中我们给出了一个公式,能够求出一列数值中从最后一个数值开始向上数5个数值的和,忽略其中的空格。本文给出了一个更简洁的公式,并且可以指定求后面的X个数值之和。 如下所示,假设我们要求这列数......
2023-05-29 0 Excel函数,excel函数公式,excel表格制作,Excel教程
前面我们介绍过Excel的对象模型及一些常用的对象,也解过对象变量的概念及声明对象变量的方法。其实,在绝大多数情况下,我们都是通过使用Excel VBA操纵Excel对象来达到我们的目的。例如,我们可......
2023-05-29 0 Excel函数,excel函数公式,excel表格制作,Excel教程
问题来源 一位做电商数据分析的朋友说,他要对所管理的六个仓库的销售额进行对比统计,统计出每个仓库的最高与最低销售额。他有几万行的数据,简化到下面几行,以方便清楚统计公式。 关键操作公式实现......
2023-05-29 0 Excel函数,excel函数公式,excel表格制作,Excel教程
在Excel中,我们会往工作表中输入数字、日期、文本,有时还会粘贴上图片,这些输入的内容都是数据。我们在Excel中制作了一个学生入学成绩信息的工作表,如下所示。 上面有各种各样的信息,都是通过......
2023-05-29 0 Excel函数,excel函数公式,excel表格制作,Excel教程
隐藏你不需要的行和列可以使Excel表格更容易阅读,特别是当表格很大的时候。隐藏的行不会影响表格,但会影响公式。按照本指南中的方法,你可以在任何版本的Excel中轻松隐藏和取消隐藏行。 步骤 方法 1......
2023-05-29 0 excel公式,excel技巧,excel教程,Excel表格,Excel教程