如果要开发Excel宏,您可能想知道如何选择一个相对于所位于单元格的单元格。例如,如果您使用的是Excel,并且按了Home键,则会选择当前行左侧的单元格。不幸的是,在这种情况下,使用宏记录器来记录此内容无济于事,因为它记录了操作的目的地而不是您的实际操作。例如,如果您按Home键,并且位于工作表的第四行,则Excel不会记录Home操作,而是记录目标,如下所示:

Range("A4").Select

如果您始终想转到单元格A4,这很好,但是如果您想要转到所在行的第一个单元格,那就太糟糕了。

与VBA中的许多任务一样,可以通过多种方法来解决这一难题。如上所述,第一种方法实际上是宏记录器返回内容的变体。您需要做的就是更改行指示符,使其代表当前行,如下所示:

Range("A" & (ActiveCell.Row)).Select

VBA找出当前行是什么,将其与“ A”

|一起拍打标识符,并提供与Range方法一起使用的单元格引用。

您可以使用的另一种技术是使Cells属性起作用,如下所示:

Cells(Application.ActiveCell.Row, 1).Select

当然,可以修改此方法,以便您实际上选择当前行中的任何给定单元格。您需要做的就是将列名称(在上面的示例中为1)更改为代表所需列的数字。

另一种方法(产生相同的结果)是将Range对象与Cells属性一起使用,如下所示:

Range(Cells(Selection.Row, 1).Address).Select

Selection.Row给出当前选择的行号。 Cells方法的Address属性以A $ 1 $格式返回特定单元格的地址。然后将该地址用作Range对象的参数,并通过Select方法选择实际的单元格。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11440)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: