VBA联盟|使用Excel VBA Union联接多个范围

Excel VBA联盟

VBA中的联盟 与其他编程语言中的并集相似,在VBA中,我们使用并集来组合两个或两个以上范围以对它们执行不同的操作集,用于此的语句本身就是并集,称为联合方法,例如,union(Range(B2:C7),Range(D2:E7))。select,此方法将选择单元格。

Union方法执行创建两个或多个范围的并集的任务,并将结果作为RANGE对象返回。这与下面的VBA RANGE对象示例完全相同。

句法

现在看一下UNION方法的语法。

我们需要至少提供2个范围。

  • Arg 1: 这是我们需要创建并集的单元格的第一个范围。
  • Arg 2: 这是我们需要创建并集的单元格的第二个范围。

前两个参数是强制性的,在提及了两个单元格范围之后,所有其他参数变为可选的。

当数据散布在单元格中时,我们需要将所有数据范围组合在一起以执行一项常见任务。我们可以创建一个分散范围的联合,以对所有联合范围执行相似的任务。

要选择多个单元格范围,我们通常可以使用RANGE对象。例如,如果要选择从A1到B5以及从B3到D5的单元格范围,则可以像下面这样编写VBA代码。

代码:

 Sub Union_Example1()Union(Range(“ A1:B5”),Range(“ B3:D5”))。选择End Sub 

这将选择单元格范围,如下图所示。

如上图所示,第一个范围从A1到B5选择,第二个范围从B3到D5选择。

这是我们在编码时都使用过的通用技术。但是,这不是我们在VBA中进行编码的唯一方法,我们还可以使用一种称为“联合”的方法来创建两个或多个范围的并集。

如何使用VBA联合方法加入多个范围?

您可以在此处下载此VBA Union Excel模板– VBA Union Excel模板

范例#1

让我们执行与上例相同的操作,但是这次使用UNION方法。

步骤1 - 在子过程中打开UNION函数。

代码:

 Sub Union_Example1()Union(结束Sub 

第2步 - 使用RANGE对象提及单元格的第一个范围。在这种情况下,我将第一个单元格范围称为 A1至B5.

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),End Sub 

步骤3 – 现在提到使用RANGE对象的第二个单元格范围,在这种情况下,我提到的单元格范围为 B3至D5.

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),Range(“ B3:B5”))En​​d Sub 

第4步 - 在创建了这些单元格范围的并集之后,我们需要确定我们需要对该单元格的并集范围执行什么操作。放 点(。) 查看IntelliSense列表。

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),Range(“ B3:B5”))。结束子 

步骤5 – 我们可以看到这些范围的所有可用属性和方法。

对于此示例,我将更改联合单元的内部颜色。为此,我首先需要选择Interior属性。

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),Range(“ B3:B5”))。Interior End Sub 

步骤6 – 使用内部属性,我们可以做很多事情,但是由于我们需要更改并集单元格的颜色,因此我将选择“颜色”属性。

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),Range(“ B3:B5”))。Interior.Color End Sub 

步骤7 – 现在我们需要设置color属性。我将使用内置的颜色索引属性作为vbGreen。

代码:

 Sub Union_Example1()Union(Range(“ A1:A5”),Range(“ B3:B5”))。Interior.Color = vbGreen End Sub 

步骤8 – 现在,如果我运行联合单元的代码颜色,它将更改为绿色。

像这样使用联合方法,我们可以创建两个或更多个单元格范围的统一。

Example#2 –使用变量存储单元格范围

所有大多数编码人员都使用变量来存储单元格范围的参考。例如,请看下面的代码。

代码:

 Sub Union_Example2()Dim Rng1作为范围Dim Rng2作为范围Set Rng1 = Range(“ A1:B5”)Set Rng2 = Range(“ B3:D5”)Union(Rng1,Rng2).Interior.Color = vbGreen End Sub 

首先,我将两个变量声明为Range。

昏暗Rng1作为范围

昏暗Rng2作为范围

然后,我为这两个变量设置了参考。

设置Rng1 =范围(“ A1:B5”)

设置Rng2 =范围(“ B3:D5”)

现在,变量rng1保留Range(“ A1:B5”)的引用,第二个变量rng2保留Range(“ B3:D5”)的引用。

然后,我应用了UNION函数来更改这些范围的单元格的内部颜色。

这也与上一个完全相同,但是使用变量使代码使用起来非常灵活。

联合函数错误

正如我告诉我的那样,所有引用对于UNION方法都必须是强制性的。例如,请看下面的代码。

代码:

 Sub Union_Example3()Dim Rng1作为范围Dim Rng2作为范围Dim Rng3作为范围Set Rng1 = Range(“ A1:B5”)Set Rng2 = Range(“ B3:D5”)Union(Rng1,Rng2,Rng3).Interior.Color = vbGreen结束子 

这与前面的类似,但在这里我将另一个变量声明为Range。

昏暗Rng3作为范围

但是我没有设置对该变量的引用,而是将变量提供给UNION函数。

Union(Rng1,Rng2,Rng3).Interior.Color = vbGreen

如果我运行此代码,我们将得到如下错误。

这是因为无论我们提供给参数的变量如何,都应包含我们正在处理的工作表中单元格的某些引用。