VBA Excel 2007 - Cells.Find

时间:2012-01-09 03:44:53

标签: excel vba

有人可以解释一下如何阅读以下代码以查找带有数据的最后一列和一行吗?

Last_Column = Sheets("Combined").Cells.Find("", [a1], , , xlByColumns, xlPrevious).Column
Last_Row = Sheets("Combined").Cells.Find("", [a1], , , xlByRows, xlPrevious).Row

谢谢

1 个答案:

答案 0 :(得分:1)

要查找上次使用的列和行的 intersect ,您应该将代码调整为

  1. 搜索"*"以匹配任何不是""用于空白单元格的通配符(注意:通过此更改,您的上述代码将在有限的意义上有效(请参阅下面的2-3) )如果您从combined表单
  2. 运行它
  3. 更加健壮,不假设工作表有数据,即设定范围,然后测试它们是Not Nothing
  4. 当使用起始单元格'[a1]时,如果您从不同的工作表运行代码,则应指定工作表名称以确保代码有效,即ws.[a1]以下

    Sub FindLast()
    Dim ws As Worksheet
    Dim rng1 As Range
    Dim rng2 As Range
    Set ws = Sheets("combined")
    Set rng1 = ws.Cells.Find("*", ws.[a1], xlValues, , xlByRows, xlPrevious)
    Set rng2 = ws.Cells.Find("*", ws.[a1], xlValues, , xlByColumns, xlPrevious)
    If Not rng1 Is Nothing Then
        MsgBox "Last cell is " & Cells(rng1.Row, rng2.Column).Address(0, 0)
    Else
        MsgBox "No cells found"
    End If
    End Sub