繁体   English   中英

vba-使用范围的最后一行和最后一列

[英]vba-Last row and column of used range

我正在尝试获取使用范围的最后一行和最后一列。

要获取最后一行和最后一列,我使用以下代码

Dim varCurrentUsedRange As Variant
Dim LastRow As Long
Dim LastCol As Long

varCurrentUsedRange = ActiveSheet.UsedRange

LastRow = UBound(varCurrentUsedRange )
LastCol = UBound(varCurrentUsedRange , 2)

此代码精确返回最后使用的行号,即使第一个使用的单元格不在行1中。

但是它返回已使用的列数,而不是最后使用的列。

例如,如果第一个使用的列为2,最后一个为6,则预期返回6,但仅返回5(使用的列数)。

那么如何获得最后使用的列号而不管起始列是什么呢?

先感谢您。

考虑以下:

Sub range_reporter()
    Dim r As Range
    Dim s As String
    Dim nLastRow As Long, nLastColumn As Long
    Dim nFirstRow As Long, nFirstColumn As Long

    ActiveSheet.UsedRange
    Set r = ActiveSheet.UsedRange

    nLastRow = r.Rows.Count + r.Row - 1
    MsgBox ("last row " & nLastRow)

    nLastColumn = r.Columns.Count + r.Column - 1
    MsgBox ("last column " & nLastColumn)

    nFirstRow = r.Row
    MsgBox ("first row " & nFirstRow)

    nFirstColumn = r.Column
    MsgBox ("first column " & nFirstColumn)

    numrow = r.Rows.Count
    MsgBox ("number of rows " & numrow)

    numcol = r.Columns.Count
    MsgBox ("number of columns " & numcol)
 End Sub

它定义了UsedRange的某些属性。
它不依赖于创建内部VBA阵列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM