的union_「VBA入门必备」Intersect方法/Union方法/End属性

本文介绍了在VBA中如何使用Intersect方法和Range.End属性来选取Excel某一列中已使用的单元格。通过示例代码,展示了如何结合ActiveSheet.UsedRange和Columns(1)来选取A列已填充内容,并解释了这两个方法的工作原理。同时,文章还提到了不一致行数可能导致的问题,并给出了避免错误的方法。
摘要由CSDN通过智能技术生成

先抛出问题:

VBA中该如何获取某列所有已使用的单元格?

这里直接给出常用语句:

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

分别用到了两个知识点:

■Intersect方法

■End属性

❶Intersect方法

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

8310e2ee7a0d92e5d109f4b6ac153007.png

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

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

22b05813d92edfe34d3456a35c4868f4.png

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

根据这个思路,来回答群友问的问题:选中某列已使用的单元格。我们知道,已使用的单元格区域,可以用UsedRange来表示。

05e96ea68a66a4543ea1ce543041e9b9.png

Intersect结合UsedRange使用实例

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

End属性

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

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

a7bff84d9340aceecdc6707ba7118374.png

我们来看个实例:

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

314ce6bb92e1f45183ce268a0b311bdf.gif

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值