分享

【入门必备】Intersect方法/Union方法/End属性

 VBA说 2020-04-07

我一直在想如何把干货沉淀下来,准备整理一些优质回答写成文章,以备以后查询和学习。

某群友

Excel函数|VBA交流③群

请教:如何选中某列全部已使用单元格?

这里说两种方法:

Sub 选中A列已使用内容()Intersect(ActiveSheet.UsedRange, Columns(1)).SelectRange("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row).SelectEnd Sub

分别用到了两个知识点:

■Intersect方法

■End属性

Intersect方法

Intersect方法:返回两个或多个单元格重叠的部分。下面截图是他所实现的效果。

截图中单元格底色是我为了方便理解,自己加的/双击查看大图

这里顺带讲一下Union方法用于联合同一个工作表中多个单元格区域,生成一个整体单元格区域。

代码运行完的效果如上图所示/双击查看大图

根据这个思路,来回答群友问的问题:选中某列已使用的单元格

我们知道,已使用的单元格区域,可以用UsedRange来表示。之前的文章《关于UsedRange属性,你想要的都在这里》详细讲过。

Intersect结合UsedRange使用实例

注意:上述案例有个前提,每一列行数一致,如果不一致,无法使用此方法。会出现以下错误。可以看到,这不是我们想要的结果。

接下来,我们再讲一下第二种方法涉及到的知识点:End属性

End属性

Range.End 属性 :返回一个 Range 对象,该对象代表源区域的区域尾端的单元格。

一般我们这么来用:单元格表达式.End (Direction) 

我们来看个实例:

光标起始放在A1单元格,同时按下Ctrl+↓之后,光标跑到了A列已使用的最后一个单元格。

利用这个特性,我们就可以寻找A列已使用的最大行号:

Cells(Rows.Count, 1).End(xlUp).Row

还有我们开头的问题,选择A列已使用的所有单元格:

Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row).Select

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多