文章预览
学习Excel技术,关注微信公众号: excelperfect 标签: VBA VBA 的 Union 方法将两个单元格区域合并成单个单元格区域,例如: Dim rng As Range Set rng = Application.Union( Range ( "A1:A5" ), Range ( "B1:B5" )) 将单元格区域 A1:A5 和 B1:B5 合并成单个的单元格区域 rng ,其代表区域 A1:B5 。 然而, Union 方法有两个缺点: 1. 其输入参数不能是 Nothing 。如果任意参数为 Nothing ,则 Union 操作失败。 2. 当输入参数指定的区域重叠时,它会复制单元格。这可能会导致代码中的逻辑问题,因为重叠的单元格在 Union 结果中包含了两次。 下面改进的 Union 函数允许传递的参数值为 Nothing 。 'Union操作接受参数为Nothing Function Union1(ParamArray Ranges() As Variant) As Range Dim lng As Long Dim rng As Range For lng = LBound(Ranges) To UBound(Ranges) If IsObject(Ranges(lng)) Then If Not Ranges(lng) Is Nothing Then
………………………………