- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用VBA查找excel中的最后一行
用VBA在Excel中找寻最后一行的方法:
使用End属性
在ExcelVBA中,使用End(xlUp)查找最后一行是最常使用且最为简单的方法,它假设要有一列总包含有数据(数字、文本和公式等),并且在该列中最后输入数据的单元格的下一行不会包含数据,因此不必担心会覆盖掉已有数据。但该方法有两个缺点:
(1) 仅局限于查找指定列的最后一行。
(2) 如果该列中最后一行被隐藏,那么该隐藏行将被视作最后一行。因此,在最后一行被隐藏时,其数据可能会被覆盖。但该列中间的隐藏行不会影响查找的结果。
[示例代码01]
Sub EndxlUp_OneColLastRow()
If Range(A Rows.Count).End(xlUp) = Empty Then GoTo Finish
获取最后一行
MsgBox 最后一行是第 Range(A Rows.Count).End(xlUp).Row “行.” Exit Sub
Finish:
MsgBox 没有发现公式或数据!
End Sub
[示例代码02]
Sub NextRowInColumnUsedAsSub() 包含所有数据和公式,忽略隐藏的最后一行
Range(A Range(A Rows.Count).End(xlUp).Row + 1).Select
End Sub
[示例代码03]
Sub NextRowInColumnUsedAsFunction()
包含所有数据和公式,忽略隐藏的最后一行
Range(A LastRowInColumn(A) + 1).Select
End Sub
- - - - - - - - - - - - - - - - - - - - - - - - -
Public Function LastRowInColumn(Column As String) As Long
LastRowInColumn = Range(Column Rows.Count).End(xlUp).Row
End Function
注意,要输入新数据的列可能与我们所查找最后一行时所使用的列不同,例如,在上例中,我们可以修改为在B列中查找该列的最后一行,而在A列相应行的下一行中输入新的数据。
--------------------------------------------------------------------------------
使用Find方法
Find方法在当前工作有数据中进行查找,不需要指定列,也可以确保不会意外地覆盖掉已有数据。其中,参数LookIn指定所查找的类型,有三个常量可供选择,即xlValues、xlFormulas和xlComments。
(1) 常量xlFormulas将包含零值的单元格作为有数据的单元格。(当设置零值不显示时,该单元格看起来为空,但该参数仍将该单元格视为有数据的单元格)
(2) 常量xlValues将包含零值的单元格(如果设置零值不显示时)作为空白单元格,此时,若该单元格在最后一行,则Find方法会认为该单元格所在的行为空行,因此,该单元格中的内容可能会被新数据所覆盖。 [注:在Excel中,选择菜单“工具”——“选项”,在打开的“选项”对话框中,选择“视图”选项卡,将其中的“零值”前的复选框取消选中,则工作表中的零值都不会显示]
如果在参数LookIn中使用常量xlValues的话,还存在一个问题是:如果您将最后一行隐藏,则Find方法会认为倒数第二行是最后一行,此时您在最后一行的下一行输入数据,则会将实际的最后一行的数据覆盖。 您可以在隐藏最后一行与不隐藏最后一行,或者是最后一行显示零值与不显示零值时,运行下面的示例代码04,看看所得的结果有什么不同。
[示例代码04]
Sub Find_LastRowxlValues()
On Error GoTo Finish
获取最后一行
MsgBox 最后一行是第 Cells.Find(*, _
SearchOrder:=xlByRows, LookIn:=xlValues, _
SearchDirection:=xlPrevious).EntireRow.Row “行”
Exit Sub
Finish:
MsgBox 没有发现数值!
End Sub
因此,在使用Find方法时,您应该考虑所选参数设置的常量,以及工作表最后一行是否有可能被隐藏或不显示零值。如果您忽视这些情况,很可能得不到您
您可能关注的文档
- 交互式Flash动画.ppt
- 交际理论原理与家庭作业答案.ppt
- 产品条码的编码结构.doc
- 交换机和配置方法.ppt
- 交际英语高级实用英语视听技能 1.ppt
- 交换机telnet登陆配置和端口配置实验.ppt
- 人人网公共主页操作手册.ppt
- 人民语文教学版需要三个目录。.ppt
- 人寿保险合同培训新课件.ppt
- 人民质量评估(答案).ppt
- 水利水电工程质量检测员继续教育系统基础考试试题及答案(各种收集).pdf
- 毕业论文设计模板.pdf
- 2025年云南省寻甸县第五中学高三下学期教学质量监测(一)数学试题试卷含解析.doc
- 2025年云南省玉溪市师院附中高三数学试题寒假周考试卷含解析.doc
- 2025年云南省玉溪市新平一中高三第一次教学质量监测(4月)数学试题含解析.doc
- 2025年云南省玉溪市新平一中高三下学期考前模拟考试数学试题含解析.doc
- 2025年云南省宣威市第四中学招生全国统一模拟考试数学试题含解析.doc
- 2025年云南省元江民中高三下学期二模(4月)数学试题含解析.doc
- 2025年云南省元江县民族中学高三质量检查数学试题含解析.doc
- 2025年云南省沾益县第四中学下学期期中考高三试卷数学试题含解析.doc
文档评论(0)