excl中的内容:我想查找出最后一个单元格的位置(D11)返回给endrngVBA代码:Sub 查找最后一个单元格()
Dim endrng As Range
Set endrng = Worksheets("sheet1").Cells.Find("*", , xlFormulas, , , xlPrevious)
Application.Range([a1], endrng).Select
End Sub在单步运行的过程:再次按F8时出现:请问这种情况怎么解决?菜鸟求助。谢谢!VBA2010Range.FindMicrosoft office微软

解决方案 »

  1.   


    application.Range("a1").End(xlDown).Select 
      

  2.   

    find方法一般是查找特定值时候用的,找最后一个单元格的位置不必那么麻烦,除非你最后一个单元格有唯一的一个结束标记,才可行。
      

  3.   

    你的错误是因为你的endrng为空,要判断,如果不为空,则:Application.Range([a1], endrng).Select你想得到那个选择效果,不需要找出最后一个,直接以下之一一行代码就可以了:
    'Application.ActiveSheet.UsedRange.Select
    Worksheets("sheet1").UsedRange.Select
      

  4.   

    我想做的事情是,对于“D11”这个单元格不是固定的,有可能再加几行(例如:加一行,需要找出来的结果一定是:D12),即需要找到列表中右下角的那个单元格的地址,不是一楼的理解的那样的(找出的是A1列最后的一个单元格)。
      

  5.   


    呃~发散一下思维呗,楼上给出的方法都可以实现的。既然能找到A11那肯定就可以定位D11了。无论你插几行。application.Range("a1").End(xlDown).End(xlToRight ).Select 

    range(split(application.ActiveSheet.usedrange.address,":")(1)).Select
      

  6.   


    呃~发散一下思维呗,楼上给出的方法都可以实现的。既然能找到A11那肯定就可以定位D11了。无论你插几行。application.Range("a1").End(xlDown).End(xlToRight ).Select 

    range(split(application.ActiveSheet.usedrange.address,":")(1)).Select找使用区域的最后一个单元格的方法,无论你插行插列。
      

  7.   

    为了10分,不惜画蛇添足,班门弄斧。
    ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Select