Excel VBA之Find
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat) |
---|
expression 必需。该表达式返回一个 Range 对象。 |
What Variant 类型,必需。要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。 |
After Variant 类型,可选。表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格位置。值得注意的是,After 必须是区域中的单个单元格。请记住搜索是从该单元格之后开始的;直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。 |
LookIn Variant 类型,可选。信息类型。 |
LookAt Variant 类型,可选。可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。 |
SearchOrder Variant 类型,可选。可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。 |
SearchDirection XlSearchDirection 类型,可选。搜索的方向。 XlSearchDirection 可为以下 XlSearchDirection 常量之一。 xlNext 默认值 xlPrevious |
MatchCase Variant 类型,可选。若为 True,则进行区分大小写的查找。默认值为 False。 |
MatchByte Variant 类型,可选。仅在选择或安装了双字节语言支持时使用。若为 True,则双字节字符仅匹配双字节字符。若为 False,则双字节字符可匹配其等价的单字节字符。 |
SearchFormat Variant 类型,可选。搜索的格式。 |
使用,因为我们的工作表中常常在最后会写一此“备注”,我们在取数据的时候,备注与后面的东西是没用的,所以我们要取到备注以上的东西,以"金额合计"或“合计”为最后一行号
====例子:代码====
Sub dd_test()
‘’’’’查找***工作表中含有” 金额合计”的单元格所在的行号
Set ng = Sheets("在编绩效").Cells.Find("金额合计", , , ,1)
MsgBox "在编绩效-金额合计:" & ng.Row
MsgBox "试用-金额合计:"& Sheets("试用").Cells.Find("金额合计", , , , 1).Row
MsgBox "编外工资-金额合计:" & Sheets("编外工资").Cells.Find("金额合计", , , ,1).Row
‘’’’’’’’’’’’’’’’’’’’’’’’查找工作表中最大的行号可最大的列号
MsgBox "数据单元格的最大行号: " &Cells.Find("*", , , , 1, 2).Row
MsgBox "数据单元格的最大列号: " &Cells.Find("*", , , , 2, 2).Column
End Sub
★★ Find 常常与FindNext配合使用,下一次再学习FindNext吧!
===有时用以下代码==【收藏】
’’’’’’’’’’’’’’’’’’’’查找A列的最后一行号或第一行最后一列号
MsgBox "A列最后1行:" & Range("A1048576").End(xlUp).Row MsgBox "1行最后1列:" &Range("XFD1").End(xlToLeft).Column
’’’’’’’’’’’’’’’’’’’’数据使用区域的最大行数和最大列数号
getrow1 = sh.UsedRange.Rows.Count
'getcol1 = sh.UsedRange.Columns.Count
’’’’’’’’’’’’’’’’’’’’查找A列的最后一行号
iLastRow = .Cells(Rows.Count,1).End(xlUp).Row