我一直在想如何把干货沉淀下来,准备整理一些优质回答写成文章,以备以后查询和学习。
这里说两种方法:
Sub 选中A列已使用内容() Intersect(ActiveSheet.UsedRange, Columns(1)).Select Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row).Select End 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
|