Excel 范围内的最后一行
找到信息和/或解决方案以产生期望的结果,这就是问题所在 现在,可能在生产时,我会在工作表上有一个名为range的“模板”。第一次使用时,此名称范围仅为Excel 范围内的最后一行,excel,excel-2010,vba,Excel,Excel 2010,Vba,找到信息和/或解决方案以产生期望的结果,这就是问题所在 现在,可能在生产时,我会在工作表上有一个名为range的“模板”。第一次使用时,此名称范围仅为rngNamed1,但第一次使用后,可能会有更多类似于此名称范围的命名范围,例如最多rngNamed30 假设在构建到rngNamed30之后的第二次运行中,我需要再添加3个NamedRange,这将导致rngNamed33 我需要做的基本上是找到最后一个命名范围的最后一行和最后一列,这样我就知道从哪里开始复制数据并声明下一个命名范围 到目前为止,
rngNamed1
,但第一次使用后,可能会有更多类似于此名称范围的命名范围,例如最多rngNamed30
假设在构建到rngNamed30
之后的第二次运行中,我需要再添加3个NamedRange,这将导致rngNamed33
我需要做的基本上是找到最后一个命名范围的最后一行和最后一列,这样我就知道从哪里开始复制数据并声明下一个命名范围
到目前为止,我所尝试的:
大多数解决方案的问题在于,它们是基于找到最后一个包含数据的单元格。我只需要知道区域的最后一个单元格,不管它是否包含数据。您可以使用行和行轻松完成此操作。区域计数:
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
Range(“X”).Row
返回名为X的范围的第一行。Range(“X”).Rows.Count
返回范围X中的行数。将这些行放在一起,可以计算范围的最后一行。范围(“X”)。地址返回可解码的地址字符串。这两种技术中的任何一种都会有帮助吗?是的,我有点想…是在尝试确保SpecialCells中没有一些模糊的选项或其他内部方法来提供信息。在对行进行尺寸标注时使用long,而不是整数,这是一种很好的做法。excel 2007及以后版本中的行数超过整数限制。另一种方法:Debug.Print rng(rng.Rows.Count,1)(2)。Row
是的,我在VB6中学到了这一课……尽管我知道它将是Int的最大值的1/100左右,但最好是数据类型一致,不要希望类型转换(隐式)正确;)
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