范围中的最后一行

时间:2012-09-25 17:51:06

标签: excel-vba excel-2010 vba excel

找到产生所需结果的信息和/或解决方案时遇到问题,所以就这样了。

现在,可能在生产时,我将在工作表上有一个名为范围的“模板”。首次使用时,此NamedRange仅为rngNamed1,但在首次使用后,可能会有更多与此类似的命名范围,最多可达rngNamed30

让我们在第2次运行后说到rngNamed30,我需要再添加3个NamedRange,结果为rngNamed33

我需要做的是基本上找到最后一行&最后一个命名范围的列,所以我知道从哪里开始复制数据并声明下一个命名范围。

到目前为止我尝试了什么:

Dim rng As range
Set rng = range("rngNamed1")
'Set rng = rng.Find("*", rng.Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False)
Debug.Print rng.Find("*", rng.Cells(1, 1), , , , xlPrevious).Address

大多数解决方案的问题在于它们基于找到最后一个单元格数据。我只需知道范围的最后一个单元格,无论它是否包含数据。

1 个答案:

答案 0 :(得分:6)

您可以使用范围的Row和Rows.Count轻松完成此操作:

Sub NextRowAfterRange()
    Dim ws As Worksheet
    Dim rangeNom As String
    Dim nextRow As Long

    ' Enter desired name here
    rangeNom = "rngName1"

    Set ws = ActiveSheet

    nextRow = ws.Range(rangeNom).Row + ws.Range(rangeNom).Rows.Count

    MsgBox nextRow
End Sub