当前位置:首页 > 办公 > Excel教程 > 正文内容

将单元格联合起来——Union方法

酷网3周前 (10-09)Excel教程26

当我们需要对工作表中不同的区域进行某一操作时,可以使用Application对象的Union方法先将这些区域合成一个区域,然后对这个合成的区域统一操作。

如下图所示,工作表中有三个单元格区域:A1:B2、C4:D5、E8:F9。

我们要将单元格区域A1:B2和E8:F9的字体设置为红色。根据前面所学的知识,我们可以使用下面的代码实现:

Range(“A1:B2”).Font.ColorIndex =3

Range(“E8:F9”).Font.ColorIndex =3

现在,我们使用Union方法来实现:

Union(Range(“A1:B2”),Range(“E8:F9”)).Font.ColorIndex = 3

为方便理解,将上面的代码分开表示(参考代码中的注释来理解):

Sub testUnion3()

Dimrng As Range ‘设置单元格对象变量

‘将单元格区域A1:B2和E8:F9合成一个单元格区域

Set rng = Union(Range(“A1:B2”),Range(“E8:F9”))

‘将合成的区域中的字体颜色设置为红色

rng.Font.ColorIndex = 3

End Sub

Union方法的语法为:

Application.Union(参数1,参数2,……,参数30)

其中:

Application表示工作簿应用程序对象(顶层对象),可以省略。

参数1,参数2,……,参数30表示单元格对象(Range对象),最少指定2个代表单元格对象的参数,最多30个。

查找并返回多个单元格

在《Excel VBA解读(41):藏得再好也能找到——使用Find方法实现查找》中,我们初步介绍了使用Find方法查找含有特定内容的单元格,并介绍了使用FindNext方法和FindPrevious方法实现连续查找。通过学习,我们知道要使用Find方法找到含有特定内容的所有单元格,只能与FindNext方法或FindPrevious方法配合。

如果结合使用Union方法,可以动态地再增加单元格,从而找到所有的单元格。

本例中,我们仍然使用该工作表。查找工作表中单元格内容为1的所有单元格。代码如下:

Sub testUnion4()

Dim rng As Range ‘声明对象变量

Dim firstRng As String ‘声明字符串变量用来存放变量地址

Dim rngAllFound As Range ‘用于存放所有找到的单元格

‘将查找到的第一个单元格赋值给变量

Set rng =Range(“A1:D3″).Find(What:=”1”, LookIn:=xlValues)

‘判断是否找到了单元格

If Not rng Is Nothing Then

‘若找到,则将其地址保存到变量中

firstRng = rng.Address

‘将找到的单元格添加到存放单元格区域的变量中

Set rngAllFound = rng

Do

‘查找下一个单元格

Set rng =Range(“A1:D3″).FindNext(After:=rng)

‘如果找到的单元格不是最先找到的单元格,则将其存放在单元格区域变量中

If rng.Address <> firstRngThen

Set rngAllFound =Union(rngAllFound, rng)

End If

Loop Until rng.Address = firstRng

End If

‘显示找到的单元格地址

firstRng = ” ”

For Each rng In rngAllFound

firstRng = firstRng & rng.Address& ”  ”

Next rng

MsgBox “内容为1的单元格在:”& firstRng

End Sub

运行代码后的结果如下图所示:

代码中使用Union方法找到满足条件的所有单元格,然后可以方便地进一步处理这些单元格。

扫描二维码推送至手机访问。

版权声明:本文章来源于互联网,由八酷网收集发布,如需转载请注明出处。

本文链接:https://www.i8ku.com/2021/39546.html

分享给朋友:

相关文章

Excel如何将Unix时间戳转北京时间?Excel转化Unix时间格式的方法

Excel如何将Unix时间戳转北京时间?Excel转化Unix时间格式的方法

  Excel如何将Unix时间戳转北京时间?还在使用代码转换Unix时间戳吗?想要转换时间戳还可以使用Excel来转换哦,事实上,我们只是套用了一个公式,如果你熟悉时间戳的规律,就是...

excel怎么四舍五入?excel四舍五入函数

excel怎么四舍五入?excel四舍五入函数

  在我们日常的实际工作中,特别是在Excel的单元格格式中允许定义小数位数,但是在实际操作中我们发现,其实数字本身并没有真正实现四舍五入。如果采用这种四舍五入的方法,在财务运算中常常会出现误差,而这是财务运算所不允许的。  首先新建一个表...

OFFSET函数也可解决排列组合问题

OFFSET函数也可解决排列组合问题

昨天的排列组合问题,今天换成OFFSET函数来解决。 相同的样表: 需要把“级别“与“等级“的所有组合列出来,有三个级别、四个等级,所以组合的可能性有3*4=12种。 分步实现: 第一步:级别重复四次 公式: =OFF...

excel图表批注也可插入图片

excel图表批注也可插入图片

我们习惯批注内写入文字,其实,批注内也可插入图片。比如:员工姓名单元格插入照片做批注,随着可查看某位员工的照片,而且也不会因为照片加大行高和列宽而影响表格美观。 如下样表: 实现步骤 1、选中要插入批注的单元格,右键,...

Excel数据处理小技巧 | 合并同类项并求和

Excel数据处理小技巧 | 合并同类项并求和

小牛作为部门资产管理员,每月领退大量物料 月底盘点需提交自盘结存报表,与财务ERP报表比对差异 小牛根据日常领退明细导出了以下表格 表格中同一物料有多次领退记录且数量不一致 而结存报表中同一物料只能统计一次且数量需为最...

求包含文本内容的单元格中的数字之和

求包含文本内容的单元格中的数字之和

单元格中的数据包含文本和数字(如),如何使用公式求出该单元格中的数字之和? 先不看答案,自已动手试一试。 公式思路 先将文本屏蔽,然后求数字之和。 公式 数组公式如下: =SUM(IFERROR(1*MID(A1,RO...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。