求助!2010 Microsoft excl 的VBA中 Range.Find的使用方法。

JoePotter 2013-07-01 09:46:42
excl中的内容:

我想查找出最后一个单元格的位置(D11)返回给endrng

VBA代码:

Sub 查找最后一个单元格()
Dim endrng As Range
Set endrng = Worksheets("sheet1").Cells.Find("*", , xlFormulas, , , xlPrevious)
Application.Range([a1], endrng).Select
End Sub

在单步运行的过程:

再次按F8时出现:

请问这种情况怎么解决?菜鸟求助。谢谢!
...全文
502 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 j610152753 的回复:
先谢谢大家的关注。 不过,最终实现的目标是列的列也不是固定的。和行一样的,可以随意添加列,最终需要找到右下角的那个单元格的地址。
你尝试代码了吗?楼上给出的方法都是可以实现随意添行添列的。 希望你能自己试一下。
lid617914 2013-07-08
  • 打赏
  • 举报
回复
条条道理通罗马,他自己可能没试
heybibby 2013-07-05
  • 打赏
  • 举报
回复
为了10分,不惜画蛇添足,班门弄斧。 ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Select
  • 打赏
  • 举报
回复
引用 8 楼 ChoasRules 的回复:
[quote=引用 6 楼 j610152753 的回复:] 我想做的事情是,对于“D11”这个单元格不是固定的,有可能再加几行(例如:加一行,需要找出来的结果一定是:D12),即需要找到列表中右下角的那个单元格的地址,不是一楼的理解的那样的(找出的是A1列最后的一个单元格)。
呃~发散一下思维呗,楼上给出的方法都可以实现的。既然能找到A11那肯定就可以定位D11了。无论你插几行。 application.Range("a1").End(xlDown).End(xlToRight ).Select 或 range(split(application.ActiveSheet.usedrange.address,":")(1)).Select [/quote] 找使用区域的最后一个单元格的方法,无论你插行插列。
  • 打赏
  • 举报
回复
引用 6 楼 j610152753 的回复:
我想做的事情是,对于“D11”这个单元格不是固定的,有可能再加几行(例如:加一行,需要找出来的结果一定是:D12),即需要找到列表中右下角的那个单元格的地址,不是一楼的理解的那样的(找出的是A1列最后的一个单元格)。
呃~发散一下思维呗,楼上给出的方法都可以实现的。既然能找到A11那肯定就可以定位D11了。无论你插几行。 application.Range("a1").End(xlDown).End(xlToRight ).Select 或 range(split(application.ActiveSheet.usedrange.address,":")(1)).Select
lid617914 2013-07-05
  • 打赏
  • 举报
回复
那意思是找最后一个单元格?
JoePotter 2013-07-05
  • 打赏
  • 举报
回复
我想做的事情是,对于“D11”这个单元格不是固定的,有可能再加几行(例如:加一行,需要找出来的结果一定是:D12),即需要找到列表中右下角的那个单元格的地址,不是一楼的理解的那样的(找出的是A1列最后的一个单元格)。
JoePotter 2013-07-05
  • 打赏
  • 举报
回复
先谢谢大家的关注。 不过,最终实现的目标是列的列也不是固定的。和行一样的,可以随意添加列,最终需要找到右下角的那个单元格的地址。
  • 打赏
  • 举报
回复
引用 3 楼 j610152753 的回复:
#2说的对,我就是想要这种效果,我需要找出D11那个单元格,如果有其他的什么好的方法请给我演示一下。谢谢!
还是要明确你的用途。你就是要找D11单元格,还是要找一列的最后一个单元格? 如果你要找特定单元格,那必须有特定的条件来定位。如果只是单纯的找最后一个,1楼代码就可以。
lid617914 2013-07-03
  • 打赏
  • 举报
回复
你的错误是因为你的endrng为空,要判断,如果不为空,则:Application.Range([a1], endrng).Select 你想得到那个选择效果,不需要找出最后一个,直接以下之一一行代码就可以了: 'Application.ActiveSheet.UsedRange.Select Worksheets("sheet1").UsedRange.Select
JoePotter 2013-07-03
  • 打赏
  • 举报
回复
#2说的对,我就是想要这种效果,我需要找出D11那个单元格,如果有其他的什么好的方法请给我演示一下。谢谢!
  • 打赏
  • 举报
回复
find方法一般是查找特定值时候用的,找最后一个单元格的位置不必那么麻烦,除非你最后一个单元格有唯一的一个结束标记,才可行。
  • 打赏
  • 举报
回复

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

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧