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

Excel vba使用范围的最后一行和最后一列,excel,vba,Excel,Vba,我正在尝试获取已使用范围的最后一行和最后一列 为了得到最后一行和最后一列,我使用下面的代码 Dim varCurrentUsedRange As Variant Dim LastRow As Long Dim LastCol As Long varCurrentUsedRange = ActiveSheet.UsedRange LastRow = UBound(varCurrentUsedRange ) LastCol = UBound(varCurrentUsedRange , 2) 此

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

为了得到最后一行和最后一列,我使用下面的代码

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数组。

非常感谢@Gary的学生。。只需对代码添加一条注释。。行nFirstRow=r。行始终返回1,即使第一个使用的行是2或3。。。。当nFirstColumn=r.Column返回第一个使用的列的确切数目时,您看到了吗