先抛出问题:
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来表示。
Intersect结合UsedRange使用实例
注意:上述案例有个前提,每一列行数一致,如果不一致,无法使用此方法。会出现以下错误。可以看到,这不是我们想要的结果。
❷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
本文介绍了在VBA中如何使用Intersect方法和Range.End属性来选取Excel某一列中已使用的单元格。通过示例代码,展示了如何结合ActiveSheet.UsedRange和Columns(1)来选取A列已填充内容,并解释了这两个方法的工作原理。同时,文章还提到了不一致行数可能导致的问题,并给出了避免错误的方法。
7640

被折叠的 条评论
为什么被折叠?



