excel中使用vba获取多个单元格区域的交叉范围

1、首先我们打开一个工作样表作为例子。

2、在工作中,我们常常会遇到选择多个工作表区域,而两个工作表区域的交叉范围如果需要我们再去选取的话,需要非常的小心,不然选择错误了又得重新来过。

3、实际上我们用vba可以方便的对这个区域作出选择。我们使用 alt+f11 组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:

Option Explicit

Sub quyu()

Dim rng1 As Range

Dim rng2 As Range

Dim rng As Range

Set rng1 = Sheets(1).Range("d6:g13")

Set rng2 = Sheets(1).Range("g11:k15")

Set rng = Application.Intersect(rng1, rng2)

'MsgBox rng.Address

rng.Formula = "=rand()"

End Sub

4、先定义一下三个变量为区域变量,然后将 选择的两个区域分别赋值给rng1,rng2.这里使用intersect方法来求取两个范围的交叉区域。

5、这里使用 msgbox来显示rng变量 , 不能直接使用,必须使用rng对象的address方法才有返回值。

6、但是rng变量可以直接用来赋值,我们可以直接使用 rng.Formula = "=rand()" 这样的方式来对交叉范围进行赋值。