如何使用具有命名范围的偏移方法

也许有更好的逻辑,但是使用这个注释给用户是我理解这个select工作的唯一方法。 也许你有更好的东西。

我几乎是在Windows XP机器上运行Excel 2010的新手。

我有一个命名的范围(如A2:D8),我称之为GanttArea。 在A8中是给用户的一个提示:“必须在这条线上面插入任何附加的行。” 这是因为我不知道如何确保用户在正确的位置添加额外的行,而且我不知道他们是否会在这里添加其他行,在这里不适用于我试图捕捉。

如果我进入

Sub SelectRange() Range("GanttArea").select End Sub 

它将select命名的范围。 我希望它上移一行,所以不包括我的笔记。 如果我进入

 Sub SelectRange() Range("GanttArea").Offset(-1,0).Select End Sub 

它确实将行移到了我想要的选区,但是现在它包含了行A1:D1,它们是标题行。 我试图为甘特图dynamicselect数据,所以这是行不通的。

我发现,也许偏移量不会改变select,而只是将相同数量的选定单元格向上移动一行。

我怎样才能使命名范围扩大或缩小,使用户可以添加或删除行?

谢谢柯克

您可以使用Resize方法而不是Offset ,因此:

 Sub SelectRange() Dim rng as Range: Set rng = Range("GanttArea") Set rng = rng.Resize(rng.Rows.Count - 1, rng.Columns.Count) rng.Select End Sub 

或者,您可以使用“ Offsetfunction简单地定义您的命名范围。

这些设置有点棘手,但只要你的列A不包含任何空白单元格,这应该工作。 在你的名字pipe理器中,为GantAreainput这个公式:

=OFFSET($A$1,1,0,COUNTA($A:$A)-1,4)

如果你这样做,你应该可以在表格区域的任何位置插入额外的行,只要这些行不是列A中的空值,范围将根据该公式dynamicresize。

在这里输入图像说明