找到产生所需结果的信息和/或解决方案时遇到问题,所以就这样了。
现在,可能在生产时,我将在工作表上有一个名为范围的“模板”。首次使用时,此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
大多数解决方案的问题在于它们基于找到最后一个单元格数据。我只需知道范围的最后一个单元格,无论它是否包含数据。
答案 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