2

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

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

我有一个命名范围(比如 A2:D8),我称之为 GanttArea。在 A8 中是给用户的说明“必须在此行上方插入任何其他行”。这是因为我不知道如何确保用户在正确的位置添加他们的附加行,而且我不知道他们是否会在稍后的几个单元格中添加其他不适用于我的行'正在尝试捕捉。

如果我输入

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

它将选择命名范围。我希望它向上移动一排,以便不包括我的笔记。如果我输入

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

它确实像我想要的那样将选择的行向上移动,但现在它包括作为标题行的行 A1:D1。我正在尝试为甘特图动态选择数据,所以这不起作用。

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

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

谢谢你,柯克

4

1 回答 1

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

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

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

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

如果这样做,您应该能够在表格区域的任何位置插入其他行,只要这些行不是 A 列中的空值,范围就会根据该公式动态调整大小。

在此处输入图像描述

于 2013-07-01T17:41:52.453 回答