有时,在宏中选择相对于当前所选单元格的单元格会有所帮助。例如,假设您要选择当前行的前三个单元格。您可以使用以下VBA代码来做到这一点:

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

Cells属性返回一个对象,该对象代表工作表的特定行和列(单个单元格)。在这种用法中,“单元”被使用两次来确定特定范围的单元。第一个实例返回当前行的第一个单元格,而第二个实例返回当前行的第三个单元格。因此,该范围成为当前行的第一到第三单元格。

您可以使用Offset属性完成许多相同的任务,而不必使用Cells属性指定位置。考虑以下代码:

Range(ActiveCell.Offset(-3, 5), ActiveCell.Offset(0, 10)).Select

这使用ActiveCell对象的Offset属性来指定相对于当前所选单元格的范围。 Offset属性采用一个表示偏移量的行和列的参数。负值表示上(对于行)和左(对于列)。正值向下(对于行),向右(对于列)。您也可以使用值0,它代表当前行或列。

注意:

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

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

本技巧(2268)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: