Find
在指定列中查找指定的字符内容,如果找到,返回行的位置,否则返回-1。
如果Table处在汇总模式下,计算行位置的时候,分组行不包括在内。
语法:
Find(StrFind, RowStart, Col, caseSensitive,
fullMatch, Wrap)
Find(StrFind, RowStart, ColName, caseSensitive,
fullMatch, Wrap)
下表是参数说明:
参数 | 说明 |
StrFind | 字符型,要查找的内容 |
RowStart | 整数型,从此行开始查找 |
Col | 整数型,指定要查找的列的位置,也可以是字符型,指定要查找的列的名称。 |
ColName | 字符型,要查找的列的名称。 |
caseSensitive | 逻辑型,是否区分大小写 |
fullMatch | 逻辑型,是否完全匹配,如果设为False,那么查找“北京”,“北京市”也符合要求。 |
Wrap | 逻辑型,是否循环查找。如果设为True,从RowStart指定的行开始查找,一直找到最后一行, 如果还是没有找到符合条件的行,那么就从第一行开始重新查找。 |
示例一
在第一列查找“abc”,不区分大小写,不用完全匹配:
With CurrentTable
Dim
r As
Integer
r
= .Find("abc",
0,
0,
False, False, True)
If r
> - 1
Then '如果找到符合条件的行
.Position
= r
'则选择该行
End If
End With
示例二
上面的代码,只能定位到第一个符合条件的行。
With
CurrentTable请在当前表的第一列输入一些内容(别忘记要输入一些“abc”),然后将上述代码复制到命令窗口,反复单击“执行”按钮,进行测试。
上面的代码,每次都从下一行开始查找,如果没有找到,则重新从第一行开始查找,所以能够实现循环查询。
示例三
也可以用列名称来指定要查找的列,例如在订单表的产品列查找产品为"PDO1"的行:
With
Tables("订单")