如何将偏移方法与命名范围一起使用

use*_*217 2 excel vba excel-vba

可能有更好的逻辑,但使用笔记给用户是我理解使这个选择工作的唯一方法.也许你有更好的东西.

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

我有一个命名范围(比如A2:D8),我称之为GanttArea.在A8中是用户注释"必须在此行上方插入任何其他行".这是因为我不知道如何确保用户在正确的位置添加他们的额外行,并且我不知道他们是否会在此后添加其他几行单元格的行不适用于我我想抓住.

如果我进入

Sub SelectRange()
    Range("GanttArea").select
End Sub
Run Code Online (Sandbox Code Playgroud)

它将选择命名范围.我希望它向上移动一行,以免包括我的笔记.如果我进入

Sub SelectRange()
    Range("GanttArea").Offset(-1,0).Select
End Sub
Run Code Online (Sandbox Code Playgroud)

它确实将行向上移动以进行选择,但现在它包括行A1:D1,它们是标题行.我正在尝试为甘特图动态选择数据,所以这不起作用.

我刚刚想到,偏移可能不会改变选择,只是将相同数量的选定单元向上移动一行.

如何使命名范围扩展或收缩以便用户可以添加或删除行?

谢谢,柯克

Dav*_*ens 6

您可以使用该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
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用该Offset函数简单地定义命名范围.

这些设置有点棘手,但只要您的A列不包含任何空白单元格,这应该可行.在您的名称管理器中,为GantArea输入以下公式:

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

如果执行此操作,您应该能够在表区域中的任何位置插入其他行,只要这些行不是A列中的空值,该范围将根据该公式动态调整大小.

在此输入图像描述