简体   繁体   English

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

[英]Excel VBA: Get Last Cell Containing Data within Selected Range

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

using Find like below is useful as it 使用以下Find是有用的

  • can find the last (or first) cell in a 2D range immediately 可以立即找到2D范围中的最后一个(或第一个)单元格
  • testing for Nothing identifies a blank range 测试Nothing标识空白范围
  • will work on a range that may not be contiguous (ie a SpecialCells range) 将适用于可能不连续的范围(即SpecialCells系列)

change "YourSheet" to the name of the sheet you are searching "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

You can try several ways: 你可以尝试几种方法:

Using xlUp 使用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

Using SpecialCells 使用SpecialCells

Dim WS As Worksheet
Dim LastCell As Range
Set LastCell = Range("A:B").SpecialCells(xlCellTypeLastCell)

The latter can sometimes be tricky and might not work as you wanted it to. 后者有时可能很棘手,可能无法按照您的意愿工作。

More tips 更多提示

You can also have a look at Chip Pearson's page about this issue 您还可以查看Chip Pearson关于此问题的页面

For a variable selection you can use 对于变量选择,您可以使用

Sub test()
    Dim arrArray As Variant
    Dim iAct As Integer
    Dim iHighest As Integer
    arrArray = Split(Selection.Address(1, 1, xlR1C1), ":")
    For Count = Right(arrArray(0), 1) To Right(arrArray(1), 1)
        iAct = ActiveSheet.Cells(Rows.Count, Count).End(xlUp).Row
        If iAct > iHighest Then iHighest = iAct
    Next Count
    MsgBox iHighest
End Sub

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

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