我正在尝试获取已使用范围的最后一行和一列。
要获取最后一行和列,我使用下面的代码
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(使用的列数)。
那么如何获取最后使用的列号而不管起始列?
提前谢谢。
答案 0 :(得分:1)
请考虑以下事项:
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数组。