Excel VBA:获取包含所选范围内的数据的最后一个单元格

sik*_*kas 4 excel vba excel-vba

如何使用Excel VBA获取包含特定范围内数据的最后一个单元格,例如A列和B列Range("A:B")

bre*_*tdj 8

使用Find如下所示是有用的

  • 可以立即找到2D范围中的最后一个(或第一个)单元格
  • 测试用于Nothing识别空白范围
  • 将在可能不连续的SpecialCells范围(即范围)上工作

更改"YourSheet"为您要搜索的工作表的名称

Sub Method2()
    Dim ws As Worksheet
    Dim rng1 As Range
    Set ws = Sheets("YourSheet")
    Set rng1 = ws.Columns("A:B").Find("*", ws.[a1], xlValues, , xlByRows, xlPrevious)
    If Not rng1 Is Nothing Then
        MsgBox "last cell is " & rng1.Address(0, 0)
    Else
        MsgBox ws.Name & " columns A:B are empty", vbCritical
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)


JMa*_*Max 6

你可以尝试几种方法:

使用xlUp

Dim WS As Worksheet
Dim LastCellA As Range, LastCellB As Range
Dim LastCellRowNumber As Long

Set WS = Worksheets("Sheet1")
With WS
    Set LastCellA = .Cells(.Rows.Count, "A").End(xlUp)
    Set LastCellB = .Cells(.Rows.Count, "B").End(xlUp)
    LastCellRowNumber = Application.WorksheetFunction.Max(LastCellA.Row, LastCellB.Row)
End With
Run Code Online (Sandbox Code Playgroud)

使用SpecialCells

Dim WS As Worksheet
Dim LastCell As Range
Set LastCell = Range("A:B").SpecialCells(xlCellTypeLastCell)
Run Code Online (Sandbox Code Playgroud)

后者有时可能很棘手,可能无法按照您的意愿工作.

更多提示

您还可以查看Chip Pearson关于此问题的页面