大家好,我们今日继续讲解VBA代码解决方案的第116讲内容:使用Intersect方法和Union方法指定专属区域范围才可以响应触发事件的方案。 一 Intersect方法讲解: Intersect方法返回一个Range对象,此对象代表两个或多个范围重叠的矩形区域,语法如下:expression.Intersect(Arg1, Arg2, ...) 参数expression是可选的,返回一个Application对象。 参数Arg1, Arg2, ...是必须的,重叠的区域。必须指定至少两个 Range对象。如果没有重叠区域将会产生错误。 特别注意:Intersect方法是Application对象的方法,返回两个或多个单元格重叠的部分,例如:Intersect(Range('A1:D5'), Range('C3:G9')).Select语句返回单元格C3:D5.如下面的截图所示: 二:Union方法讲解:Union方法也是Application对象的方法,可以将两个或多个单元格区域联合起来,生成一个新的单元格区域。如下面的实例: Union(Range('A1'), Range('B2:D5'), Range('C6:G10')).select 表示的意义为: 将A1,B2:D5,C6:G10三个单元格组合成一个单元格区域,然后select方法选中。 三 有了上面的两种方法我们就可以实现精准的判断选择的区域是否在我们的要求之内了,如我们要实现在作表A1到A10,C1到D10单元格时才弹出对话框,表示选择的区域。 如下面的代码所示。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Union(Range('A1:A10'), Range('C1:D10'))) Is Nothing Then MsgBox '你选择正确,选择的地址是:' & Target.Address(0, 0) & '单元格' End If End Sub 代码窗口: 代码解析: 当选择工作表A1到A10,C1到C10单元格时将所选的单元格地址显示在消息框中。 第2行代码使用Intersect方法判断所选单元格是否与A1到A10,C1到C10单元格重叠,如果重叠说明所选单元格在A1到A10,C1到C10单元格区域内。 运行效果: 通过以上的代码,我们从而实现了专属区域的代码精确控制触发事件。 今日内容回向: 1 Intersect方法 的意义是什么? 2 Union方法的意义是什么? |
|